分享

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

 weijianian 2016-08-09


来源:KAnts

链接:http://www.cnblogs.com/ants/p/5605754.html


什么是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


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


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



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



服务端代码:



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



修改业务逻辑



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



客户端代码生成器


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


      


运行客户端代理生成器


    


选择相应功能



去指定目录查看



使用



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多