1. 程式人生 > >異數OS 織夢師-纖手(二)-- LPC RPC篇

異數OS 織夢師-纖手(二)-- LPC RPC篇

異數OS 織夢師-纖手(二)– LPC RPC篇


本文來自異數OS社群


github: https://github.com/yds086/HereticOS

異數OS社群QQ群: 652455784

異數OS-織夢師(訊息中介軟體 RPC技術)群: 476260389


織夢師-纖手 LPC RPC簡介


纖手主要用於異數OS 之上效能級應用系統設計,他並不支援序列化等需要CPU密集型功能,因此他也不支援其他非C++語言平臺,要求CPU同構(大端,小端),相比傳統RPC 技術,提供10-100倍的呼叫效能提升,多樣化的方案選擇也使他可以面向不同效能級應用場合,方案原型都是最小化輕量級,開發者可以改造定義自己的RPC平臺。


與眾不同的特性


  1. 簡單靠譜的框架,使用阻塞執行緒模型,因此併發設計更加簡單實用,不需要考慮非同步併發帶來的演算法複雜度以及錯誤處理等問題。
  2. 海量併發呼叫特性,由於異數OS的執行緒開銷很低,1億執行緒僅需4G記憶體,因此可以更加隨意的使用LPC RPC技術,而不需要考慮其成本代價,傳統LPC RPC技術往往被宿主平臺的CPU數量執行緒數量等限制,而只能選擇叢集擴充併發RPC容量,RPC併發容量保守測試提升1000倍。
  3. 10-100倍 LPC RPC呼叫效能

LPC 方案說明


LPC主要用於相同CPU核內執行緒的過程呼叫,依賴異數OS 本地event元件,實現本地CPU核線程間快速呼叫,相比RPC,擁有最快的過程呼叫效能(IO密集型),每CPU核最大20M左右執行緒間呼叫效能,不能用於跨CPU核跨網路的過程呼叫。

這裡寫圖片描述


RPC方案說明


1. RPC 跨核交換機模式

RPC 跨核交換機模式,此模式彌補LPC 不能支援跨CPU核呼叫模式,多路併發RPC(8代理,8存根)最大800W左右RPC呼叫效能,單路RPC 200W左右RPC呼叫效能,適用於混合計算密集型的IO應用,適用於多核分載計算壓力,但IO效能不如LPC.

這裡寫圖片描述

2.TCP直連模式

此模式為網路分散式環境提供RPC服務,由異數OS TCP協議棧來提供跨網路的RPC呼叫,最大每核400W呼叫效能左右。

這裡寫圖片描述

3.TCP經紀人代理模式

經濟人模式使用 織夢師-水母訊息佇列作為框架核心,相比TCP直連模式,優勢是通過經紀人可以解耦Client Server的呼叫依賴,通過多消費者存根可以大大提高系統的可用性穩定性,消費者存根崩潰時並不會對生產者代理造成連帶影響,劣勢是,IO規模比直連模式大一倍,單broker最大RPC 呼叫效能在200W,具體架構原理圖參見織夢師-水母訊息佇列。


相關RPC產品效能對比


資料來自網路,環境目標不同,選取目標產品最大效能值,成績僅供參考。

引用的其他產品測試成績
http://colobu.com/2018/01/31/benchmark-2018-spring-of-popular-rpc-frameworks/
https://blog.csdn.net/quuqu/article/details/79304614

測試特性 纖手 5000W LPC 纖手 5000W RPC跨核 纖手 600W-RPC TCP直連 纖手 600W RPC TCP中間人 go+stdrpc thrift dubbo
RPC最大呼叫效能 20M 8M 4M 2M 30W 7W 20W
平均延遲 呼叫效能/連結數量 呼叫效能/連結數量 呼叫效能/連結數量 呼叫效能/連結數量 10ms+呼叫效能/連結數量 10ms+呼叫效能/連結數量 10ms+呼叫效能/連結數量
最小延遲 <1us 10us 10us 10us 10ms 10ms 10ms