微服務(四)
Dubbo
Dubbo是什麼
網站應用的架構變化經歷了一個從所有服務分佈在一臺服務器上(All in one 、單一應用架構)到 垂直應用架構 (MVC模式,按照各模塊的職能劃分)到分佈式應用架構(RPC、按照服務不同分佈在不同的服務器上)再到面向服務的架構(SOA,增加調度中心,負責集羣的調度和管理)的過程。 Dubbo就是處在SOA架構階段的一個遠程服務調用框架。
Dubbo是一個分佈式服務框架,致力於提供高性能和透明化的PRC遠程服務調用方案,以及SOA服務治理方案
Dubbo分佈式服務調用框架的特點:
1、透明化的遠程方法調用,沒有api入侵、直接通過spring XML 配置文件的形式調用遠程方法
2、負載均衡和容錯機制
3、服務註冊中心和治理
Provider:暴露服務提供的提供者
Consumer:調用遠程服務的消費者
Registry:服務註冊與發現的註冊中心
Monitor:統計服務調用情況的監控中心
Container:容器
調用關係:
0、服務容器啓動、加載、運行服務提供者
1、提供者將自己註冊到註冊中心
2、消費者去註冊中心訂閱自己需要的服務
3、註冊中心返回服務提供者地址列表給消費者,如果有變更,註冊中心基於長連接推送變更數據給消費者
4、消費者從註冊中心拿到列表,然後基於負載均衡算法,選擇一臺提供者進行服務調用
5、服務提供者和消費者在內存中累計調用次數和時間,定時每分鐘發送數據到監控中心。
Dubbo像是一臺組裝機:註冊中心用zookeeper、redis做遠程服務信息存儲
Dubbo和Spring cloud 對比
最大區別:
Dubbo | spring cloud | |
---|---|---|
傳輸方式 | RPC傳輸方式 TCP/IP協議 | Htpp傳輸協議 |
性能 | RPC傳輸性能更好、速度更快、 | REST ful 風格、更適合快速迭代 |
CAP理論(c-數據一致性 A-服務可用性 p-容錯) | zookeeper 保證CP | Eureka 遵循AP |