上一講中,我提到了微服務框架,其中 springcloud 和 dubbo 的使用最為廣泛,行業內也一直存在著對兩者的比較,很多技術人會為這兩個框架哪個更好而爭辯。
我記得我們部門在搭建微服務框架時,也在技術選型上糾結良久,還曾一度有過激烈的討論。當前 springcloud 炙手可熱,具備完整的微服務生態,得到了很多同事的票選,但我們最終的選擇卻是 dubbo,這是為什麼呢?
rpc
通訊是大型服務框架的核心
我們經常討論微服務,首要應該了解的就是微服務的核心到底是什麼,這樣我們在做技術選型時,才能更準確地把握需求。
就我個人理解,
我認為微服務的核心是遠端通訊和服務治理。
遠端通訊提供了服務之間通訊的橋梁,服務治理則提供了服務的後勤保障。所以,我們在做技術選型時,更多要考慮的是這兩個核心的需求。
網路通訊 RPC框架在網路通訊上的網路IO模型
首先,應用程序發起 io 系統呼叫後,應用程序被阻塞,轉到核心空間處理。之後,核心開始等待資料,等待到資料之後,再將核心中的資料拷貝到使用者記憶體中,整個 io 處理完畢後返回程序。最後應用的程序解除阻塞狀態,執行業務邏輯。系統核心處理 io 操作分為兩個階段 等待資料和拷貝資料。而在這兩個階段中,...
高效能網路通訊原理
目錄i o執行緒模型 總結參考文件 當我們在讀取socket資料時,雖然我們在 僅僅是呼叫了乙個read操作,但是實際作業系統層面做了許多事情。首先作業系統需要從使用者模式轉換為核心模式,處理器會通過網絡卡驅動對網絡卡控制器進行操作,網絡卡控制器則控制網絡卡。處理器不會直接操控硬體。為了提高cpu利...
高併發下RPC通訊優化路徑
選擇合適的通訊協議 基於 tcp 協議實現的 socket 通訊是有連線的,而傳輸資料是要通過三次握手來實現資料 傳輸的可靠性,且傳輸資料是沒有邊界的,採用的是位元組流模式。基於 udp 協議實現的 socket 通訊,客戶端不需要建立連線,只需要建立乙個套接字傳送 資料報給服務端,這樣就不能保證資...