DOTNETTYRPC เป็นเฟรมเวิร์กข้ามแพลตฟอร์มแบบข้ามแพลตฟอร์มตาม DOTNETTY รองรับ. NET45 และ. NET Standard 2.0
เมื่อพบบริการการโทรระยะไกลในการพัฒนา. NET แบบดั้งเดิม WCF เป็นจุดสนใจหลัก แม้ว่า WCF จะมีฟังก์ชั่นที่ทรงพลัง แต่การกำหนดค่านั้นซับซ้อนและไม่ง่ายต่อการใช้งาน และในอนาคตมันจะเป็นโลกของ. NET Core WCF ไม่รองรับ. NET Core ในขณะนี้ (เฉพาะไคลเอนต์ไม่สามารถสร้างเซิร์ฟเวอร์ได้) เฟรมเวิร์ก RPC อื่น ๆ ในตลาดอื่น ๆ เช่น GRPC การพลัดพรากและแม้กระทั่ง Microservice Framework Orleans มีประสิทธิภาพมีประสิทธิภาพที่ดีและค่อนข้างเติบโต แต่ไม่ง่ายพอที่จะใช้ จากการเปรียบเทียบข้างต้น (โดยไม่มีการสรรเสริญและการพ่ายแพ้) ฉันเพิ่งใช้ด่านล้อ การวางตำแหน่งของมันคือ cross-platform (.NET45 และ. NET มาตรฐาน), กรอบ RPC ที่เรียบง่าย แต่ใช้งานได้จริง
เปิดตัวจัดการแพ็คเกจ NUGET ค้นหา DOTNETTYRPC เพื่อค้นหาและใช้งาน
หรือป้อนคำสั่ง nuGet: ติดตั้งแพคเกจ 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 ( ) ;
}
}
}เรียกใช้เซิร์ฟเวอร์ก่อนจากนั้นเรียกใช้ไคลเอนต์และคุณสามารถส่งออกสวัสดีบนไคลเอนต์
คำขอ RPC เฉลี่ยสำหรับการทดสอบในเครื่องนี้มีประมาณ 0.4ms ซึ่งไม่สูงในด้านประสิทธิภาพ แต่ก็เพียงพอที่จะรับมือกับสถานการณ์ทางธุรกิจส่วนใหญ่โดยมุ่งเน้นไปที่ความเรียบง่ายและการใช้งานจริง มีหลายสถานที่ที่สามารถปรับให้เหมาะสมและฉันหวังว่าทุกคนจะสนับสนุนได้
ที่อยู่ GitHub: https://github.com/coldairarrow/dotnettyrpc
กลุ่ม QQ: 373144077