阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

.NET轻量级RPC框架:Rabbit.Rpc

116次阅读
没有评论

共计 885 个字符,预计需要花费 3 分钟才能阅读完成。

最近准备写一个.NET 的管理平台应用在公司,由于存在大量的 Client => Server,Server => Client 的请求需求在加上之前一直接触了解过 RpcClient 组件的开发,所以就造了个新轮子 Rabbit.Rpc。这篇文章也用于介绍这个新组件。

什么是 RPC?

  RPC 全称为:Remote Procedure Call Protocol,远程过程调用协议。

  用.NET 的技术可以理解为:Remoting、WCF。主要目的就是:实现服务的远程调用、远程执行,当然既然有协议那么其它语言(Java、php 等)还是可以调用基于 RPC 提供出去的服务。

Rabbit.Rpc 项目情况

  说来惭愧,Rabbit.Rpc 我只开发了两三天,主要想先能用,后续在迭代,因为.NET 管理平台等不起那么久。所以目前不推荐正式应用在商业项目中,但如果你只是用来研究或一些私人的小项目还是可以集成使用的,毕竟它很简单,代码量也不多。它 采用了开源的 通信框架:DotNetty

开源地址:https://github.com/RabbitTeam/Rpc

优点

  1. 无侵入性,集成简单
  2. 像调用普通接口一样调用远程服务
  3. 易扩展
  4. 开源

特色功能

  1. 运行时客户端代理生成(基于 Roslyn)
  2. 客户端代理预生成(基于 Roslyn)
  3. 抽象的服务协调配置

下一步

  1. 客户端负载均衡
  2. Zookeeper 等第三方协调服务
  3. 日志集成
  4. 本地回环调用(开发时不需要请求到服务端等情况)
  5. 更高的性能
  6. Protocol Buffer序列化器
  7. .NET Core 适配
  8. ……

Examples

目的:远程调用服务,客户端不关闭的情况下更新业务逻辑。

  • 添加一个简单的服务接口和实现。

.NET 轻量级 RPC 框架:Rabbit.Rpc

  • 客户端代码(运行时生成代理):

.NET 轻量级 RPC 框架:Rabbit.Rpc

  • 服务端代码:

.NET 轻量级 RPC 框架:Rabbit.Rpc

  • 运行服务端(会自动生成路由配置)、再运行客户端

.NET 轻量级 RPC 框架:Rabbit.Rpc

  • 修改业务逻辑

.NET 轻量级 RPC 框架:Rabbit.Rpc

  • 重新运行服务端后在在原来的客户端中尝试发起请求

.NET 轻量级 RPC 框架:Rabbit.Rpc

客户端代码生成器

  • 将你含有接口定义的 dll 放到“assemblies”目录下

      .NET 轻量级 RPC 框架:Rabbit.Rpc

  • 运行客户端代理生成器

    .NET 轻量级 RPC 框架:Rabbit.Rpc

  • 选择相应功能

    .NET 轻量级 RPC 框架:Rabbit.Rpc

  • 去指定目录查看

    .NET 轻量级 RPC 框架:Rabbit.Rpc

  • 使用

    .NET 轻量级 RPC 框架:Rabbit.Rpc

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/137007.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计885字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中