DotnetTyRpc-это кроссплатформенная платформа RPC на основе DotNetty, поддерживающего .net45 и .net Standard 2.0
При столкновении с удаленными вызовами услуг в традиционной разработке .NET WCF является основным направлением. Хотя WCF имеет мощные функции, его конфигурация сложна и не прост в использовании. И в будущем это определенно будет миром .NET Core. В настоящее время WCF не поддерживает .NET Core (только клиенты, сервер не может быть установлен). Другие рамки RPC .NET на рынке, такие как GRPC, растущие и даже микросервисные рамки Орлеан, являются мощными, имеют хорошую производительность и являются относительно зрелыми, но они недостаточно просты в использовании. Основываясь на приведенном выше сравнении (без какого -либо восхваления и принижения), я только что взял колесо 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,4 мс, что не имеет высокой производительности, но этого достаточно, чтобы справиться с большинством бизнес -сценариев, с акцентом на простоту и практичность. Есть много мест, которые можно оптимизировать, и я надеюсь, что каждый сможет поддержать это.
Адрес Github: https://github.com/coldairarrow/dotnettyrpc
QQ Группа: 373144077