DotNETTYRPC ist ein plattformübergreifendes RPC-Framework, das auf DotNety basiert und .NET45 und .NET Standard 2.0 unterstützt
Bei der Begegnung mit Remote -Anrufen in der traditionellen .NET -Entwicklung steht WCF im Mittelpunkt. Obwohl WCF leistungsstarke Funktionen hat, ist seine Konfiguration komplex und nicht einfach zu bedienen. Und in Zukunft wird es definitiv die Welt des .NET -Kerns sein. WCF unterstützt vorerst nicht .NET Core (nur Clients, kein Server kann festgelegt werden). Andere .NET -RPC -Frameworks auf dem Markt, wie GRPC, Such- und sogar Microservice -Framework Orleans, sind leistungsstark, haben eine gute Leistung und sind relativ ausgereift, aber sie sind nicht einfach genug zu verwenden. Basierend auf dem obigen Vergleich (ohne Lob und Herabhebung) habe ich gerade ein RadnotentyRPC genommen. Die Positionierung ist ein plattformübergreifender (.NET45- und .NET-Standard), ein einfaches, aber praktisches RPC-Framework.
Öffnen Sie den Nuget -Paket -Manager, suchen Sie dotNettyRPC, um ihn zu finden und zu verwenden
Oder geben Sie den Befehl nuget ein: installpackage dotNettyrpc installieren
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 ( ) ;
}
}
}Führen Sie zuerst den Server aus und führen Sie den Client aus, und Sie können Hallo im Client ausgeben
Die durchschnittliche RPC -Anfrage an Tests in dieser Maschine beträgt etwa 0,4 ms, was nicht hoch ist, aber es reicht aus, um die meisten Geschäftsszenarien zu bewältigen, wobei der Schwerpunkt auf Einfachheit und Praktikabilität liegt. Es gibt viele Orte, die optimiert werden können, und ich hoffe, jeder kann es unterstützen.
GitHub -Adresse: https://github.com/coldairarrow/dotnettyrpc
QQ -Gruppe: 373144077