.NET 跨平台RPC框架DotNettyRPC

DotNettyRPC

1.简介

DotNettyRPC是一个基于DotNetty的跨平台RPC框架,支持.NET45以及.NET Standard2.0git

2.产生背景

传统.NET开发中遇到远程调用服务时,多以WCF为主。而WCF虽然功能强大,可是其配置复杂,不易于上手。并且将来一定是.NET Core的天下,WCF暂不支持.NET Core(只有客户端,没法创建服务端)。市面上的其余.NET的 RPC框架诸如gRPC、surging甚至微服务框架Orleans等,这些框架功能强大,性能也很好,而且比较成熟,可是使用起来不够简单。基于上述比较(无任何吹捧贬低的意思),鄙人不才撸了一个轮子DotNettyRPC,它的定位是一个跨平台(.NET45和.NET Standard)、简单却实用的RPC框架github

3.使用方法

3.1引入DotNettyRPC

打开Nuget包管理器,搜索DotNettyRPC便可找到并使用c#

或输入Nuget命令:Install-Package DotNettyRPC框架

3.2定义服务接口

public interface IHello
    {
        string SayHello(string msg);
    }
    
    public class Hello : IHello
    {
        public string SayHello(string msg)
        {
            return msg;
        }
    }

3.3服务端

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();
        }
    }
}

3.4客户端

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();
        }
    }
}

3.5运行

先运行服务端,再运行客户端,便可在客户端输出Hello微服务

4.结语

本机测试一次RPC请求平均0.4ms左右,性能不高,可是足以应对绝大多数业务场景,重在简单实用。能够优化的地方不少,还望你们多多支持。性能

GitHub地址:https://github.com/Coldairarrow/DotNettyRPC测试

QQ群:373144077优化

相关文章
相关标签/搜索