标签:
不久前发布了一篇博文“.NET轻量级RPC框架:Rabbit.Rpc”,当初只实现了非常简单的功能,也罗列了之后的计划,经过几天的不断努力又为Rabbit.Rpc增加了一大波新特性,今天主要介绍下项目近况。
开源地址:https://github.com/RabbitTeam/Rpc
Rpc核心类库,有如下功能:
服务代理生成器,提供的功能:
ProtoBuffer协议的编解码器实现。
基于ZooKeeper的服务路由管理。
基于DotNetty的传输实现。
ps:官方以有将DotNetty支持NET Core的计划,大伙可以再等等,待官方支持后,会尽快进行适配。
由于DotNetty不支持跨平台运行,为了让rpc能在其它平台上跑通,故移植了“Cowboy.Sockets”实现了一个简单的传输实现。
单元测试项目。
预生产服务代理的工具,提供了如下功能:
测试环境
OS | CPU | 内存 | 硬盘 | 网络环境 | 虚拟机 |
Windows 10 x64 | I7 3610QM | 16GB | SSD | 127.0.0.1 | 否 |
Ubuntu 16.04 x64 | I7 3610QM | 4GB | SSD | 127.0.0.1 | 是 |
平均用时:2601.6毫秒
平均每次用时:0.26毫秒
通过率:100%
平均用时:2625.4毫秒
平均每次用时:0.25毫秒
通过率:100%
平均用时:3108.4毫秒
平均每次用时:0.31毫秒
通过率:100%
平均用时:3580.4毫秒
平均每次用时:0.35毫秒
通过率:100%
ps:linux性能与windows上的性能有一些差距,不知道是不是虚拟机的原因,但有个有趣的现象,protobuffer在linux上的性能居然比json低,应该是protobuffer库的实现不够优秀。
测试代码
https://github.com/RabbitTeam/Rpc/tree/master/src/examples/performances
等待DotNetty组件支持NETCore,并进行适配。
继续写Rabbit.Rpc相关的文章。
下一篇应该是,如何在Ubuntu上运行Rabbit.Rpc。
QQ群:384413261(RabbitHub)
Email:majian159@live.com
拥抱.NET Core,跨平台的轻量级RPC:Rabbit.Rpc
标签:
原文地址:http://www.cnblogs.com/ants/p/5652132.html