最近准备写一个.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

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

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

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

  • 服务端代码:

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

  • 修改业务逻辑

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

客户端代码生成器

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

  • 运行客户端代理生成器

  • 选择相应功能

  • 去指定目录查看

  • 使用

交流方式

(RabbitHub)

Email:majian159@live.com

.NET轻量级RPC框架:Rabbit.Rpc的更多相关文章

  1. 拥抱.NET Core,跨平台的轻量级RPC:Rabbit.Rpc

    不久前发布了一篇博文".NET轻量级RPC框架:Rabbit.Rpc",当初只实现了非常简单的功能,也罗列了之后的计划,经过几天的不断努力又为Rabbit.Rpc增加了一大波新特性 ...

  2. C# -- 高性能RPC框架:Socean.RPC

    简介 Socean.RPC是一个.Net下的高性能RPC框架,框架以高性能.高稳定性为目标,底层基于socket,无第三方库引用,代码简洁,总代码量大约在2000行,框架性能较高,在普通PC上测试,长 ...

  3. 开源自己实现一个.net rpc框架 - Machete.Rpc

    Machete.Rpc Machete.Rpc 是一个轻量级的Rpc(远程过程调用的)框架.底层代理使用了Emit提高了效率,底层通信采用DotNetty框架以提升通信的效率.目前正在逐步完善中. G ...

  4. 6种微服务RPC框架,你知道几个?

    开源 RPC 框架有哪些呢? 一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的. 跟语言平台绑定的开源 RPC 框架主要有下面几种. Dubbo:国内最早开源的 RPC 框架,由阿里巴 ...

  5. 6 种微服务 RPC 框架,你知道几个?

    开源 RPC 框架有哪些呢? 一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的. 跟语言平台绑定的开源 RPC 框架主要有下面几种. Dubbo:国内最早开源的 RPC 框架,由阿里巴 ...

  6. Hadoop系列番外篇之一文搞懂Hadoop RPC框架及细节实现

    @ 目录 Hadoop RPC 框架解析 1.Hadoop RPC框架概述 1.1 RPC框架特点 1.2 Hadoop RPC框架 2.Java基础知识回顾 2.1 Java反射机制与动态代理 2. ...

  7. RPC框架实现

    转载RPC框架实现 RPC(Remote Procedure Call,远程过程调用)框架是分布式服务的基石,实现RPC框架需要考虑方方面面.其对业务隐藏了底层通信过程(TCP/UDP.打包/解包.序 ...

  8. Java实现简单的RPC框架

    一.RPC简介 RPC,全称为Remote Procedure Call,即远程过程调用,它是一个计算机通信协议.它允许像调用本地服务一样调用远程服务.它可以有不同的实现方式.如RMI(远程方法调用) ...

  9. Rabbit RPC 代码阅读(一)

    前言 因为想对RPC内部的机制作一个了解,特作以下阅读代码日志,以备忘. RPC介绍 Rabbit RPC 原理可以用3点概括: 1.服务端启动并且向注册中心发送服务信息,注册中心收到后会定时监控服务 ...

  10. 服务化实战之 dubbo、dubbox、motan、thrift、grpc等RPC框架比较及选型

    转自: http://blog.csdn.net/liubenlong007/article/details/54692241 概述 前段时间项目要做服务化,所以我比较了现在流行的几大RPC框架的优缺 ...

随机推荐

  1. Hadoop入门学习笔记---part2

    在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...

  2. wordpress上传图片时重命名--修改插件时遇到的一些问题

    wordpress是用php语言开发的博客平台,它扩展性强,容易扩展,很适合拿来做二次开发. 1,问题由来 本周五,我在浏览公司的网站(基于wordpress开发)时发现,网站首页上有两篇文章的缩略图 ...

  3. 四大组件之ContentProvider

    前言 ContentProvider作为Android的四大组件之一,是属于需要掌握的基础知识,可能在我们的应用中,对于Activity和Service这两个组件用的很常见,了解的也很多,但是对Con ...

  4. 【原创】轻量级即时通讯技术MobileIMSDK:Android客户端开发指南

    申明:MobileIMSDK 目前为个人维护的原创开源工程,现陆续整理了一些资料,希望对需要的人有用.如需与作者交流,见文章底签名处,互相学习. MobileIMSDK开源工程的代码托管地址请进入 G ...

  5. 让你的web程序“动”起来。

    看到这里你可能会问,asp.net程序本身就是动态网站,还要如何动? 我这里所谓的动起来,是指动态加载,动态更新.好吧可能你又要问了动态网站本来就是动态加载,动态更新的.asp.net的程序依附于II ...

  6. 推荐几个Web前端开发实用的Chrome插件

    越来越多的前端开发人员喜欢在Chrome里开发调试代码,Chrome有许多优秀的插件可以帮助前端开发人员极大的提高工作效率.尤其Chrome本身是可以登录的,登录后你所有的插件都会自动同步到每一个登录 ...

  7. sql 2012中获取表的信息,包含字段的描述

    1.获取数据库中的表 select name from sysobjects where type='U' 2.获取表字段(此处是Route表) Select name from syscolumns ...

  8. 创业公司招php商城开发者

    众筹  电商 已经融资100W美元 职位要求1.对PHP编程熟悉程度以上,有电商相关开发经验优先:2.熟悉lnmp相关配套搭建运维,开发;熟悉linux 使用3.对数据结构和算法设计有较深刻的理解:4 ...

  9. CSS之深入探究Position

    这些天重新整理以前的代码,想对其进行优化,却出现了很多问题,其中一个就是Position,中间自己停下优化代码的工作,特意停下来深入研究了一下Position.现在来分享一下自己的体会吧! 首先我们从 ...

  10. luogg_java学习_06_面向对象特性之封装和继承

    这篇博客总结了1天,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 , 因为前不久偶然发现某网站直接复制粘贴我的博客,交谈之后他们修改 ...