不久前发布了一篇博文".NET轻量级RPC框架:Rabbit.Rpc",当初只实现了非常简单的功能,也罗列了之后的计划,经过几天的不断努力又为Rabbit.Rpc增加了一大波新特性,今天主要介绍下项目近况. 特性一览 Apache License 2.0协议开源 支持客户端负载均衡(提供了轮询.随机算法的实现) 支持ZooKeeper和文件共享形式的服务协调 运行时客户端代理生成(基于Roslyn) 预生成客户端代理 客户端代理预生成(基于Roslyn) 抽象的编解码器(提供了JSON…
NET Core,跨平台的轻量级RPC:Rabbit.Rpc 特性一览 Apache License 2.0协议开源 支持客户端负载均衡(提供了轮询.随机算法的实现) 支持ZooKeeper和文件共享形式的服务协调 运行时客户端代理生成(基于Roslyn) 预生成客户端代理 客户端代理预生成(基于Roslyn) 抽象的编解码器(提供了JSON.ProtoBuffer协议的实现) 抽象的传输通道(提供了DotNetty与Cowboy.Sockets的移植实现) 异常信息传递(服务端运行时的本地异常…
之前写了一篇博文宣布Rabbit Rpc跨平台了"拥抱.NET Core,跨平台的轻量级RPC:Rabbit.Rpc",在过程中尝试了如何编写支持跨平台的类库与应用程序,也尝试了在linux上的运行,今天特此将过程中的一些经历记录下来,方便后人. 安装开发环境 本人用Windows环境就直接用Visual Studio了,当然也可以用记事本或Visual Code. .NET Core开发要求 Visual Studio 2015 Update3 .NET Core 1.0 for V…
在此前的文章中详细介绍了使用.NET Core的基本知识,如果还没有看,可以先去了解“拥抱.NET Core,学习.NET Core的基础知识补遗”,以便接下来的阅读. 在本文将介绍如何配置类库项目支持不同的平台,并为不同的平台进行兼容的编码. 创建一个.NET Core类库 首先我们创建一个.NET Core的类库项目. 结构如下 设置项目支持的平台 我们打开“project.json”文件,会看到如下内容: 其中“framework”就是用来配置所支持的目标,默认为netstandard1.…
最近准备写一个.NET的管理平台应用在公司,由于存在大量的Client => Server,Server => Client的请求需求在加上之前一直接触了解过RpcClient组件的开发,所以就造了个新轮子Rabbit.Rpc.这篇文章也用于介绍这个新组件. 什么是RPC? RPC全称为:Remote Procedure Call Protocol,远程过程调用协议. 用.NET的技术可以理解为:Remoting.WCF.主要目的就是:实现服务的远程调用.远程执行,当然既然有协议那么其它语言(…
.NET轻量级RPC框架:Rabbit.Rpc 最近准备写一个.NET的管理平台应用在公司,由于存在大量的Client => Server,Server => Client的请求需求在加上之前一直接触了解过RpcClient组件的开发,所以就造了个新轮子Rabbit.Rpc.这篇文章也用于介绍这个新组件. 什么是RPC? RPC全称为:Remote Procedure Call Protocol,远程过程调用协议. 用.NET的技术可以理解为:Remoting.WCF.主要目的就是:实现服务的…
前言 .NET Core的新特性之一就是跨平台,但由于对之前框架的兼容导致编写一个.NET Core类库变得相当复杂,主要体现为相当多的框架目标和支持平台,今天我们就对.NET Core的跨平台特性进行一次梳理. 在.NET Core之前 其实早在.NET Core之前微软就有推出.NET的跨平台方案,不过这次的跨平台指的不是Linux.OSX,而是微软自家的平台,如:NET.Silverlight.Windows8.Windows8.1.Windows Phone. 这个阶段微软将它称作为:可…
引言 为了验证采用dotnet core技术开发的物联网设备数据采集接入服务应用是否能在高性价比的linux嵌入式平台运行,针对dotnet core应用程序进行嵌入式linux环境的发布部署运行验证研究. 硬件环境 硬件系统经过对比筛选,选用了友善之臂出品的NanoPC-T3 Plus.该控制板为掌上型嵌入式Linux系统迷你PC,采用64位三星arm CPU,具有完善的硬件接口和驱动支持,大于1G的内存和8G以上的eMMC闪存,具有较高的性能价格比. NanoPC-T3 Plus是友善之臂专…
前言 因为想对RPC内部的机制作一个了解,特作以下阅读代码日志,以备忘. RPC介绍 Rabbit RPC 原理可以用3点概括: 1.服务端启动并且向注册中心发送服务信息,注册中心收到后会定时监控服务状态(常见心跳检测). 2.客户端需要开始调用服务的时候,首先去注册中心获取服务信息. 3.客户端创建远程调用连接,连接后服务端返回处理信息. 第3步又可以细分,下面说说远程过程调用的原理: 1.目标:客户端怎么调用远程机器上的公开方法 2.服务发现,向注册中心获取服务(这里需要做的有很多:拿到多个…
<ASP.NET Core跨平台开发从入门到实战>样章节 Web API自定义格式化protobuf. 样章 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化. 它很适合做数据存储或 RPC 数据交换格式.可用于通讯协议.数据存储等领域的语言无关.平台无关.可扩展的序列化结构数据格式. 以下将实现一个格式化程序返回protobuf 格式. 首先新建一个ASP.NET Core Web Application应用程序名为 Protobu…