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