簡單學習一下dubbo

什麼是Dubbo?

dubbo是一個分佈式服務框架,致力於提供高性能和透明化的RPC遠程服務治理方案,以及SOA服務治理方案。

 什麼是RPC?

兩個服務器上分別部署不同的應用a,b。當服務器a想要調用服務器b提供的方法時,由於不屬於一個空間,不能直接調用,需要通過網絡傳輸調用服務。rpc會出現的問題?1.尋址問題 2.序列化 3.通訊問題(假定存在某種網絡協議)

什麼是soap?

嚴格分離模塊,使用接口調用服務

Dubbo框架?


0.服務容器負責啓動,加載和運行服務提供方

1.服務提供方啓動時向註冊中心註冊自己提供的服務

2.服務消費方啓動時向註冊中心訂閱自己需要的服務

3.註冊中心返回服務提供者地址列表給消費者,如果有變更,註冊中心將基於長連接的變更數據提供給消費者

4.服務消費者,從提供者地址列表中,基於軟負載均衡算法,調用一臺提供者,若不存在,就調用另一臺

5.服務提供者和消費者,在內存使用累計數和調用時間都會向監控中心記錄

1 面試題:Dubbo中zookeeper做註冊中心,如果註冊中心集羣都掛掉,發佈者和訂閱者之間還能通信麼? 
可以的,啓動dubbo時,消費者會從zk拉取註冊的生產者的地址接口等數據,緩存在本地。每次調用時,按照本地存儲的地址進行調用

註冊中心對等集羣,任意一臺宕掉後,會自動切換到另一臺 
註冊中心全部宕掉,服務提供者和消費者仍可以通過本地緩存通訊 
服務提供者無狀態,任一臺 宕機後,不影響使用 
服務提供者全部宕機,服務消費者會無法使用,並無限次重連等待服務者恢復 
2 dubbo連接註冊中心和直連的區別 
在開發及測試環境下,經常需要繞過註冊中心,只測試指定服務提供者,這時候可能需要點對點直連, 
點對點直聯方式,將以服務接口爲單位,忽略註冊中心的提供者列表,

服務註冊中心,動態的註冊和發現服務,使服務的位置透明,並通過在消費方獲取服務提供方地址列表,實現軟負載均衡和Failover, 註冊中心返回服務提供者地址列表給消費者,如果有變更,註冊中心將基於長連接推送變更數據給消費者。 
服務消費者,從提供者地址列表中,基於軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。註冊中心負責服務地址的註冊與查找,相當於目錄服務,服務提供者和消費者只在啓動時與註冊中心交互,註冊中心不轉發請求,服務消費者向註冊中心獲取服務提供者地址列表,並根據負載算法直接調用提供者,註冊中心,服務提供者,服務消費者三者之間均爲長連接,監控中心除外,註冊中心通過長連接感知服務提供者的存在,服務提供者宕機,註冊中心將立即推送事件通知消費者 
註冊中心和監控中心全部宕機,不影響已運行的提供者和消費者,消費者在本地緩存了提供者列表 
註冊中心和監控中心都是可選的,服務消費者可以直連服務提供者

3、Dubbo在安全機制方面是如何解決的 
Dubbo通過Token令牌防止用戶繞過註冊中心直連,然後在註冊中心上管理授權。Dubbo還提供服務黑白名單,來控制服務所允許的調用方。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章