RPC通訊框架——RCF介紹
現有的軟體中用了大量的COM介面,導致無法跨平臺,當然由於與Windows結合的太緊密,還有很多無法跨平臺的地方。那麼為了實現跨平臺,支援Linux系統,以及後續的分散式,首要任務是去除COM介面。
在對大量框架進行調研後,決定使用RCF替換COM介面。
RPC通訊框架
為什麼選擇RCF
經過各項對比,認為:
- RCF的使用方式與現有的COM介面方式非常類似,在開發上可以更快速、更容易的替換COM,並且可以少犯錯誤;
- 從穩定性上來說,RCF從2008年釋出的第一個正式版本1.0,到現在的2.01,經歷了7個比較重大的版本變化,發展的使用者包括”愛立信、惠普“等這樣的大公司,在網路上查詢RCF相關的介紹,普遍都說不錯,是功能比較強大的分散式通訊框架,由此可知RCF目前比較穩定,比較成熟;
- RCF基於標準C++,支援Windows、Linux、Unix等作業系統,可以很好的完成跨平臺功能;
- RCF支援TCP、UDP、命名管道等通訊方式;
- RCF的Server端支援單執行緒與執行緒池模式,正好對應COM的兩種執行緒模式;
- 官方文件號稱使用了零拷貝、零堆記憶體分配、Server端快取等技術,用於提高效能;
- 比較重要的是,雖然官方只有英文文件,但是這份文件非常通俗易懂,即使英文水平比較差,也能在一個晚上或者一個上午的時間內對RCF整體的使用、包含的功能、支援的協議等有比較詳細的瞭解,這對於後續的快速瞭解和快速開發並替換COM,有著至關重要的作用;
簡單的效能測試
在我的筆記本 Windows7 專業版 SP1 x64 、Intel(R) Core(TM) i5-2450M CPU @ 2.5GHz、 12G記憶體 的機器上,編寫了Demo,對RCF進行了測試。
一個Server程式,一個Client程式,通過TCP進行通訊,Client程式中呼叫Server服務的介面,這個介面實現是一個空方法,用來測試純介面呼叫的極限次數,Release x86版測試結果如下:
呼叫兩萬次,耗時1647ms左右,平均每秒可以呼叫12143次,平均每次呼叫耗時82微妙。
參考資料
求推薦:程式排程庫、程式間通訊庫,All 開源,謝謝!-C/C++-ChinaUnix.net
RCF – Interprocess Communication for C++ – CodeProject
分散式通訊的幾種方式(EJB、RMI、RPC、JMS、web service雜談)
總結
經過各項對比後,雖然RCF並不是最強大的框架,可能也不是效能最高的框架,但是在替換COM介面這種需求的情況下,RCF應該是最適合的框架,所以最終選擇RCF框架來完成此任務。
相關文章
- RCF--RPC(遠端呼叫框架)RPC框架
- 轉RMI、RPC、SOAP通訊技術介紹及比對RPC
- lms微服務的rpc通訊框架微服務RPC框架
- RPC介紹RPC
- RPC框架實現 - 通訊協議篇RPC框架協議
- RCF:一個相當不錯的C++分散式RPC框架C++分散式RPC框架
- Java中幾種常用的RPC框架介紹JavaRPC框架
- RPC簡單介紹RPC
- C/S通訊模型與B/S通訊模型介紹模型
- Thrift RPC 通訊搭建RPC
- RocketMQ(二):RPC通訊MQRPC
- 物聯網通訊協議介紹協議
- .NET開發框架(一)-框架介紹與視訊演示框架
- Aidl程式間通訊詳細介紹AI
- 程式間的五種通訊方式介紹
- postMessage實現頁面通訊介紹
- 微服務7:通訊之RPC微服務RPC
- TPHP框架介紹PHP框架
- .NET框架介紹框架
- KanaPHP框架介紹PHP框架
- RPC通訊原理(未完,先睡覺)RPC
- 叢集RPC通訊怎麼做RPC
- 程式間的五種通訊方式介紹-詳解
- AWT100無線通訊終端介紹
- 帶你手寫基於 Spring 的可插拔式 RPC 框架(一)介紹SpringRPC框架
- Python 框架介紹Python框架
- JAVA SSH 框架介紹Java框架
- 訊息中介軟體—RocketMQ的RPC通訊(一)MQRPC
- 結合RPC框架通訊談 netty如何解決TCP粘包問題RPC框架NettyTCP
- C++各大有名庫的介紹——網路通訊C++
- 搜尋引擎框架介紹框架
- spring框架的介紹Spring框架
- Gin框架介紹及使用框架
- Retrofit網路框架介紹框架
- java常用的框架介紹Java框架
- JAVA SSH 框架介紹(轉)Java框架
- 從零開始實現簡單 RPC 框架 6:網路通訊之 NettyRPC框架Netty
- Scrapy框架的使用之Scrapy框架介紹框架