DotNettyRPC是一個基於DotNetty的跨平臺RPC框架,支持.NET45以及.NET Standard2.0git
傳統.NET開發中遇到遠程調用服務時,多以WCF爲主。而WCF雖然功能強大,可是其配置複雜,不易於上手。並且將來一定是.NET Core的天下,WCF暫不支持.NET Core(只有客戶端,沒法創建服務端)。市面上的其餘.NET的 RPC框架諸如gRPC、surging甚至微服務框架Orleans等,這些框架功能強大,性能也很好,而且比較成熟,可是使用起來不夠簡單。基於上述比較(無任何吹捧貶低的意思),鄙人不才擼了一個輪子DotNettyRPC,它的定位是一個跨平臺(.NET45和.NET Standard)、簡單卻實用的RPC框架github
打開Nuget包管理器,搜索DotNettyRPC便可找到並使用c#
或輸入Nuget命令:Install-Package DotNettyRPC框架
public interface IHello { string SayHello(string msg); } public class Hello : IHello { public string SayHello(string msg) { return msg; } }
using Coldairarrow.DotNettyRPC; using Common; using System; namespace Server { class Program { static void Main(string[] args) { RPCServer rPCServer = new RPCServer(9999); rPCServer.RegisterService<IHello, Hello>(); rPCServer.Start(); Console.ReadLine(); } } }
using Coldairarrow.DotNettyRPC; using Common; using System; namespace Client { class Program { static void Main(string[] args) { IHello client = RPCClientFactory.GetClient<IHello>("127.0.0.1", 9999); var msg = client.SayHello("Hello"); Console.WriteLine(msg); Console.ReadLine(); } } }
先運行服務端,再運行客戶端,便可在客戶端輸出Hello微服務
本機測試一次RPC請求平均0.4ms左右,性能不高,可是足以應對絕大多數業務場景,重在簡單實用。能夠優化的地方不少,還望你們多多支持。性能
GitHub地址:https://github.com/Coldairarrow/DotNettyRPC測試
QQ羣:373144077優化