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