Dotnettyrpc adalah kerangka kerja RPC lintas platform berdasarkan Dotnetty, mendukung .NET45 dan .NET Standard 2.0
Saat menemukan layanan panggilan jarak jauh dalam pengembangan .NET tradisional, WCF adalah fokus utama. Meskipun WCF memiliki fungsi yang kuat, konfigurasinya kompleks dan tidak mudah digunakan. Dan di masa depan, itu pasti akan menjadi dunia .NET Core. WCF tidak mendukung .NET Core untuk saat ini (hanya klien, tidak ada server yang dapat ditetapkan). Kerangka kerja RPC .NET lainnya di pasaran, seperti GRPC, melonjak dan bahkan kerangka kerja Microservice Orleans, sangat kuat, memiliki kinerja yang baik, dan relatif matang, tetapi mereka tidak cukup sederhana untuk digunakan. Berdasarkan perbandingan di atas (tanpa memuji dan meremehkan), saya baru saja mengambil roda dotnettyrpc. Posisinya adalah cross-platform (.NET45 dan .NET standar), kerangka kerja RPC yang sederhana namun praktis.
Buka Nuget Package Manager, cari dotnettyrpc untuk menemukan dan menggunakannya
Atau masukkan perintah 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 ( ) ;
}
}
}Jalankan server terlebih dahulu, dan kemudian jalankan klien, dan Anda dapat mengeluarkan halo pada klien
Permintaan RPC rata -rata untuk pengujian di mesin ini adalah sekitar 0,4 ms, yang tidak tinggi dalam kinerja, tetapi cukup untuk mengatasi sebagian besar skenario bisnis, dengan fokus pada kesederhanaan dan kepraktisan. Ada banyak tempat yang dapat dioptimalkan, dan saya harap semua orang dapat mendukungnya.
Alamat GitHub: https://github.com/coldairarrow/dotnettyrpc
QQ Group: 373144077