RPC通信框架——RCF介紹


現有的軟件中用了大量的COM接口,導致無法跨平台,當然由於與Windows結合的太緊密,還有很多無法跨平台的地方。那么為了實現跨平台,支持Linux系統,以及后續的分布式,首要任務是去除COM接口。

在對大量框架進行調研后,決定使用RCF替換COM接口。

RPC通信框架

  1. CORBA
  2. ICE
  3. Thrift
  4. zeromq
  5. dbus
  6. RCF
  7. YAMI4
  8. TAO

為什么選擇RCF

經過各項對比,認為:

  1. RCF的使用方式與現有的COM接口方式非常類似,在開發上可以更快速、更容易的替換COM,並且可以少犯錯誤;
  2. 從穩定性上來說,RCF從2008年發布的第一個正式版本1.0,到現在的2.01,經歷了7個比較重大的版本變化,發展的用戶包括”愛立信、惠普“等這樣的大公司,在網絡上查找RCF相關的介紹,普遍都說不錯,是功能比較強大的分布式通信框架,由此可知RCF目前比較穩定,比較成熟;
  3. RCF基於標准C++,支持Windows、Linux、Unix等操作系統,可以很好的完成跨平台功能;
  4. RCF支持TCP、UDP、命名管道等通信方式;
  5. RCF的Server端支持單線程與線程池模式,正好對應COM的兩種線程模式;
  6. 官方文檔號稱使用了零拷貝、零堆內存分配、Server端緩存等技術,用於提高性能;
  7. 比較重要的是,雖然官方只有英文文檔,但是這份文檔非常通俗易懂,即使英文水平比較差,也能在一個晚上或者一個上午的時間內對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雜談)

C/C++ 分布式應用/網格開源軟件

現在主流開源分布式系統架構都有哪些?

thrift 入門介紹

Apache Thrift - 可伸縮的跨語言服務開發框架

cross platform IPC

總結

經過各項對比后,雖然RCF並不是最強大的框架,可能也不是性能最高的框架,但是在替換COM接口這種需求的情況下,RCF應該是最適合的框架,所以最終選擇RCF框架來完成此任務。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM