Dubbo基本原理机制
生活随笔
收集整理的這篇文章主要介紹了
Dubbo基本原理机制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
分布式服務框架:
- 高性能和透明化的RPC遠程服務調用方案
- SOA服務治理方案
- Apache MINA 框架基于Reactor模型通信框架,基于tcp長連接
Dubbo缺省協議采用單一長連接和NIO異步通訊,
適合于小數據量大并發的服務調用,以及服務消費者機器數遠大于服務提供者機器數的情況
分析源代碼,基本原理如下:
當前線程怎么讓它“暫停”,等結果回來后,再向后執行?
答:先生成一個對象obj,在一個全局map里put(ID,obj)存放起來,再用synchronized獲取obj鎖,再調用obj.wait()讓當前線程處于等待狀態,然后另一消息監聽線程等到服 務端結果來了后,再map.get(ID)找到obj,再用synchronized獲取obj鎖,再調用obj.notifyAll()喚醒前面處于等待狀態的線程。
正如前面所說,Socket通信是一個全雙工的方式,如果有多個線程同時進行遠程方法調用,這時建立在client server之間的socket連接上會有很多雙方發送的消息傳遞,前后順序也可能是亂七八糟的,server處理完結果后,將結果消息發送給client,client收到很多消息,怎么知道哪個消息結果是原先哪個線程調用的?
答:使用一個ID,讓其唯一,然后傳遞給服務端,再服務端又回傳回來,這樣就知道結果是原先哪個線程的了。
總結
以上是生活随笔為你收集整理的Dubbo基本原理机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AtCoder Beginner Con
- 下一篇: 牛客第六场 H-Hopping Rabb