开源地址:https://gitee.com/comhaqs/combuffer.git
目前项目需要使用RPC框架,大概查看了几个开源框架,要么只提供通信框架(zeromq、nanomsg),要么对运行环境有要求,不能适应项目要求(brpc、grpc)。考虑提高技术水平和项目要求,计划自己写一套RPC框架。原则如下:
1、尽量使用成熟稳定、使用面广的第三方库,毕竟自己技术有限,全部造轮子费时费力,效果还不如第三方库。
2、优先考虑开发和维护成本,项目对性能没那么高,在保证性能的前提下,减少开发和维护成本才是优先考虑的。
3、框架分为RPC层和通信层,这样可以根据项目实际情况,选择不同的通信层。
基于以上考虑,决定RPC层使用protobuffer的RPC框架,通信层使用boost.asio库。选择protobuffer是因为没有找到其他合适的RPC框架,而且protobuffer成熟稳定,使用面广,对多语言支持也不错。通信层选用boost.asio库主要是从自己熟悉的角度出发的,毕竟项目对性能要求不是非常高,暂时没必要接入zeromq等通信库,以后可以考虑实现zeromq的通信层。