最近想試試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對比