DotNettyRPC
1.0.0
DotNettyRPC是一個基於DotNetty的跨平台RPC框架,支持.NET45以及.NET Standard2.0
傳統.NET開發中遇到遠程調用服務時,多以WCF為主。而WCF雖然功能強大,但是其配置複雜,不易於上手。而且未來必定是.NET Core的天下,WCF暫不支持.NET Core(只有客戶端,無法建立服務端)。市面上的其他.NET的RPC框架諸如gRPC、surging甚至微服務框架Orleans等,這些框架功能強大,性能也很好,並且比較成熟,但是使用起來不夠簡單。基於上述比較(無任何吹捧貶低的意思),鄙人不才擼了一個輪子DotNettyRPC,它的定位是一個跨平台(.NET45和.NET Standard)、簡單卻實用的RPC框架
打開Nuget包管理器,搜索DotNettyRPC即可找到並使用
或輸入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