最近想试试C#能不能写出高性能的分布式组件,因而写了一个双工RPC,也当练手,下面是单链接的测试结果,很是给力。
机器配置:U:E1230-v2,内存:ddr3-8G
一、递归调用
过程:Client向Server调用方法,Server的方法内部再调用一次Client的方法,拿到结果后计算结果返回给Client.
二、单向调用
过程:client调用Server的方法
哈,性能很是给力吧,我也没想到性能这么给力。
用RPC开发一个分布式应用或者网络应用很是简单,下面粘点代码
Server端:
就这么简单,服务器的类只须要继承自ServerController,里面的方法客户端就能直接调用,图中注释的代码就是代码内部反向调用Client端的方法,方法体内部支持Session上下文,能够很方便的操做,图中的BroadCast方法就是使用Session上下文给全部在线的用户发送广播信息
client端:
就这么简单,只须要提供Server端的方法的接口,就能像使用本地方法同样调用服务器的方法。
图中的ISCaculator接口就是服务器端的Caculator类的接口,能够和图1对比 服务器