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框架来完成此任务。

时间: 2024-12-27 07:40:26

RPC通信框架——RCF介绍的相关文章

RPC通信框架——RCF介绍(替换COM)

阅读目录 RPC通信框架 为什么选择RCF 简单的性能测试 参考资料 总结 现有的软件中用了大量的COM接口,导致无法跨平台,当然由于与Windows结合的太紧密,还有很多无法跨平台的地方.那么为了实现跨平台,支持Linux系统,以及后续的分布式,首要任务是去除COM接口. 在对大量框架进行调研后,决定使用RCF替换COM接口. 回到顶部 RPC通信框架 CORBA ICE Thrift zeromq dbus RCF YAMI4 TAO 回到顶部 为什么选择RCF 经过各项对比,认为: RCF

【Java】分布式RPC通信框架Apache Thrift 使用总结

简介 Apache Thrift是Facebook开源的跨语言的RPC通信框架,目前已经捐献给Apache基金会管理,由于其跨语言特性和出色的性能,在很多互联网公司得到应用,有能力的公司甚至会基于thrift研发一套分布式服务框架,增加诸如服务注册.服务发现等功能. RPC即Remote Procedure Call,翻译为远程过程调用.任何RPC协议的实现终极目标都是让使用者在调用远程方法的时候就像是调用本地方法一样简单,从而提高使用远程服务的效率. 现代互联网架构多数基于SOA思想而搭建,即

rpc服务框架thrift介绍

rpc服务框架目前主要有 thrift, grpc, dubbo, HSF等 这里主要介绍thrift框架 git地址  :https://github.com/apache/thrift/tree/0.9.1 1. 接口定义 tutorial.thrift include "shared.thrift" /** * Thrift files can namespace, package, or prefix their output in various * target langu

大并发量socket 通信框架MINA介绍

Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架.当前发行的 MINA 版本支持基于 Java NIO 技术的TCP/UDP 应用程序开发.串口通讯程序. Mina 的应用层: 一个设计成熟的开源框架,总是会仅可能的减少侵入性,并在整个项目中找到合适的位置,而不应对整个项目的构架设计产生过多的影响,图 1 就是 MIN

Spark1.6之后为何使用Netty通信框架替代Akka

解决方案: 一直以来,基于Akka实现的RPC通信框架是Spark引以为豪的主要特性,也是与Hadoop等分布式计算框架对比过程中一大亮点. 但是时代和技术都在演化,从Spark1.3.1版本开始,为了解决大块数据(如Shuffle)的传输问题,Spark引入了Netty通信框架,到了1.6.0版本,Netty居然完成取代了Akka,承担Spark内部所有的RPC通信以及数据流传输. 网络IO扫盲贴 在Linux操作系统层面,网络操作即为IO操作,总共有:阻塞式,非阻塞式,复用模型,信号驱动和异

介绍开源的.net通信框架NetworkComms框架之二 传递类

原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  开源地址是:https://github.com/MarcFletcher/NetworkComms.Net 使用networkcomms框架通信时,客户端发送消息,服务器端回复消息. 在介绍开源的.net通信框架NetworkComms 一文中,我们介绍了如何从客户端发送字符串给服务器端,以及如何从服务

成熟的C#网络通信框架介绍——ESFramework通信框架

ESFramework通信框架是一套性能卓越.稳定可靠.强大易用的跨平台C#网络通信框架,支持应用服务器集群.其内置了消息的收发与自定义处理(支持同步/异步模型).消息广播.P2P通道.文件传送(支持断点续传).心跳检测.断线重连.登录验证.在线用户管理.好友与群组管理.性能诊断等功能.基于ESFramework通信框架,您可以方便快捷地开发出各种优秀的网络通信应用.此外,我们在长期实践中所积累的丰富经验,更将成为您强大的技术保障,从开发到上线直至后续运维,全程为您保驾护航,让您高枕无忧.具体而

介绍开源的.net通信框架NetworkComms框架 源码分析(二)ConnectionInfo

原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是:Apache License v2 开源地址是:https://github.com/MarcFletcher/NetworkComms.Net ConnectionInfo 是连接的信息类 用来存放连接类型(TCP,UDP),连接ID,创建连接时间,是否服务器端,本地地址,远端地址,最近通信时间

介绍开源的.net通信框架NetworkComms框架 源码分析

原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 售价249英镑 我曾经花了2千多购买过此通讯框架, 目前作者已经开源  许可是:Apache License v2 开源地址是:https://github.com/MarcFletcher/NetworkComms.Net 这个框架给我的感觉是,代码很优美,运行很稳定,我有一个项目使用此框架已经稳定运行1年多.这个框架能够