DotTetTyRPC est un framework RPC multiplateforme basé sur Dotnetty, prenant en charge .NET45 et .NET Standard 2.0
Lors de la rencontre des services d'appels distants dans le développement .NET traditionnel, WCF est l'objectif principal. Bien que WCF ait des fonctions puissantes, sa configuration est complexe et pas facile à utiliser. Et à l'avenir, ce sera certainement le monde de .NET Core. WCF ne prend pas en charge .NET Core pour le moment (seuls les clients, aucun serveur ne peut être établi). D'autres cadres RPC .NET sur le marché, tels que le GRPC, la montée en puissance et même le cadre de microservice Orleans, sont puissants, ont de bonnes performances et sont relativement matures, mais ils ne sont pas assez simples à utiliser. Sur la base de la comparaison ci-dessus (sans aucune éloge et dépréciation), je viens de prendre une roue dotnettyrpc. Son positionnement est un cadre multiplateforme (.NET45 et .NET), un cadre RPC simple mais pratique.
Ouvrez le gestionnaire de packages NuGet, recherchez DotTetTyRPC pour le trouver et l'utiliser
Ou entrez la commande nuget: install-package dotTyTyrpc
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 ( ) ;
}
}
}Exécutez d'abord le serveur, puis exécutez le client, et vous pouvez sortir Hello sur le client
La demande de test RPC moyenne dans cette machine est d'environ 0,4 ms, ce qui n'est pas élevé en performances, mais il suffit de faire face à la plupart des scénarios commerciaux, en mettant l'accent sur la simplicité et la praticité. Il existe de nombreux endroits qui peuvent être optimisés, et j'espère que tout le monde pourra le soutenir.
Adresse github: https://github.com/coldairarrow/dotnettyrpc
Groupe QQ: 373144077