Dubbo是一個阿里巴巴開源出來的一個分布式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。
1.什么是分布式服務框架
分布式有兩個特點,分別是內聚性和透明性(比如git管理工具就是一個分布式的)。
內聚性是指每個數據庫分布節點高度獨立,互不影響,有本地的數據庫數據系統。
透明性是指每個數據庫分布節點對用戶的應用來說都是透明的,看不出那個是本體。
2.Dubbo框架的特點有:
(1) 連通性:
- 注冊中心負責服務地址的注冊與查找,相當於目錄服務,服務提供者和消費者只在啟動時與注冊中心交互,注冊中心不轉發請求,壓力較小
- 監控中心負責統計各服務調用次數,調用時間等,統計先在內存匯總后每分鍾一次發送到監控中心服務器,並以報表展示
- 服務提供者向注冊中心注冊其提供的服務,並匯報調用時間到監控中心,此時間不包含網絡開銷
- 服務消費者向注冊中心獲取服務提供者地址列表,並根據負載算法直接調用提供者,同時匯報調用時間到監控中心,此時間包含網絡開銷
- 注冊中心,服務提供者,服務消費者三者之間均為長連接,監控中心除外
- 注冊中心通過長連接感知服務提供者的存在,服務提供者宕機,注冊中心將立即推送事件通知消費者
- 注冊中心和監控中心全部宕機,不影響已運行的提供者和消費者,消費者在本地緩存了提供者列表
- 注冊中心和監控中心都是可選的,服務消費者可以直連服務提供者
- 監控中心宕掉不影響使用,只是丟失部分采樣數據
- 數據庫宕掉后,注冊中心仍能通過緩存提供服務列表查詢,但不能注冊新服務
- 注冊中心對等集群,任意一台宕掉后,將自動切換到另一台
- 注冊中心全部宕掉后,服務提供者和服務消費者仍能通過本地緩存通訊
- 服務提供者無狀態,任意一台宕掉后,不影響使用
- 服務提供者全部宕掉后,服務消費者應用將無法使用,並無限次重連等待服務提供者恢復
- 注冊中心為對等集群,可動態增加機器部署實例,所有客戶端將自動發現新的注冊中心
- 服務提供者無狀態,可動態增加機器部署實例,注冊中心將推送新的服務提供者信息給消費者
- 當服務集群規模進一步擴大,帶動IT治理結構進一步升級,需要實現動態部署,進行流動計算,現有分布式服務架構不會帶來阻力
Dubbo服務器與普通的服務器的區別:
- Dubbo服務器是分布式的,普通服務器是集中式的(一般是單一式框架的或垂直式框架)。
- Dubbo服務器適用於業務較多,業務應用之間的交互不可避免,使用垂直式已經不能滿足的情況;普通的小項目,應用單一的使用一台服務就可以滿足;稍微項目應用多一些,使用垂直式框架就可以了。
- 服務器掛了(或者壞了),那普通的就慘了(對服務器的依賴很強),跟服務器連接的設備就無法工作了;分布式是一台服務不能工作,其他的服務器還可以正常工作,分布式相對比較安全。
- 普通服務器的關系簡單些(一對多);Dubbo服務器的關系復雜些(多對多)。
參考文獻的鏈接:
https://www.biaodianfu.com/dubbo.html
https://baike.baidu.com/item/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F/4905336?fr=aladdin