使用libuv封装一个uv-rpc

本文介绍了作者为何放弃googletalkrpc和baidurpc,选择libuv来封装RPC服务的原因,包括libuv的跨平台特性和高性能。作者分享了自己的封装结构,强调了libuv在Linux和Windows上的高效I/O处理,并提供了性能测试结果,展示在特定环境下能达到的RPC调用频率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码仓库 https://github.com/robinfoxnan/uv-rpc

1) 为啥不用google rpc呢?

依赖的第三方代码太多了,而且很难找全,尤其是有些服务在内网不能联网,安装部署也是个问题;

2)为啥不用baidu rpc呢?

brpc号称非常的块,在联网机器上下载库也很方便,但是不是跨平台的;

3)为啥用libuv呢?

libuv也算是酒精考验的库,是nodejs的依赖库,跨平台;linux使用了epoll,windows使用了IOCP。库还封装了各种基础操作:文件异步操作,定时器,队列,锁……

我的需求是为CPU密集型分布式计算做一个RPC,要求跨平台,要求1毫秒一下的往返时延,于是我封装了一下libuv,结构大概是这样的:

其中定义了一个通用的包结构:

其中的数据部分,根据自己的需要使用字符串,json或者protobuf都可以。

自己只需要对数据部分做自己的编解码就可以了;具体可以参考示例。

性能:

1)客户与服务端在笔记本上(windows10),能单连接跑2万次/秒。

2)6个连接,能跑8万次/秒;

未完待续……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值