本篇内容属于非实用性(拿来即用)介绍,如对框架设计没兴趣的朋友,请略过。

快一个月没有写博文了,最近忙着两件事;
   一:阅读刘墉先生的《说话的魅力》,以一种微妙的,你我大家都会经常遇见的事物,来建议说话的“艺术和魅力”,对于我们从事软件开发、不太善于沟通和表达的朋友来说,也算是一项软技能了,推荐喜欢阅读的朋友有时间阅读,给你不一样的阅读体验。
二:编写基于Net Core的Rpc框架。之前有朋友说如何将Rpc等整个体系集成到dotnet框架中,我想这篇博文会给你一个答案。
哦,对了,我不建议直接将代码直接复制下来然后去运行的朋友,因为这样你达不到学习的目的,也违背了笔者的初衷。谢谢理解。

一:简单回顾一下之前的介绍

继续贴上之前的一张图片

根据上面图,服务化原理可以分为3步:
  1. 服务端启动并且向注册中心发送服务信息,注册中心收到后会定时监控服务状态(常见心跳检测);
  2. 客户端需要开始调用服务的时候,首先去注册中心获取服务信息;
  3. 客户端创建远程调用连接,连接后服务端返回处理信息;
 
  第3步又可以细分,下面说说远程过程调用的原理:
目标:客户端怎么调用远程机器上的公开方法
  1. 服务发现,向注册中心获取服务(这里需要做的有很多:拿到多个服务时需要做负载均衡,同机房过滤、版本过滤、服务路由过滤、统一网关等);
  2. 客户端发起调用,将需要调用的服务、方法、参数进行组装;
  3. 序列化编码组装的消息,这里可以使用json,也可以使用xml,也可以使用protobuf,也可以使用hessian,几种方案的序列化速度还有序列化后占用字节大小都是选择的重要指标,对内笔者建议使用高效的protobuf,它基于TCP/IP二进制进行序列化,体积小,速度快。
  4. 传输协议,可以使用传统的IO阻塞传输,也可以使用高效的nio传输(Netty);
  5. 服务端收到后进行反序列化,然后进行相应的处理;
  6. 服务端序列化response信息并且返回;
  7. 客户端收到response信息并且反序列化;
 
  至于C类和S类之间的通信方式,是采用RPC还是采用RESTful,读者可以参考之前的介绍,根据实际业务进行决定https://www.cnblogs.com/SteveLee/p/service_discovery_and_service_governance.html
 

二:DotEasy.Rpc框架介绍

  单论Rpc框架市场,且不论Java上的Spring Boot和Spring Cloud这样大名鼎鼎的开源框架,目前Net上的Rpc整合性框架确实并不多,我们Net程序员也要混口饭吃,不能总被Java甩掉好几条街吧。
  言归正传,一个远程过程调用,会涉及到如下几个方面的技术点(功能):
  1. 路由转发:当服务部署在多个节点上时,调用方需要知道自己的目标服务在什么地方。
  2. 通信协议:当管道存在,还需要在管道的两端建立处理程序(宿主),以处理管道中的数据包。DotEasy.Rpc基于DotNetty进行通信处理和协议实现。
  3. 动态生成:我们知道,基于二进制的RPC传输,每当新增接口,或修改接口,都需要生成相关协议的protobuf文件(或 thrift 文件),本框架基于protobuf-net的传输框架和Rosyln的预生成,动态生成相关的CS文件。
  4. 运行时代理:本框架采用一次请求创建一个客户端的模式,进行S端的服务请求,本框架基于Rosyln运行时创建客户端代理。
  5. 接口扫描:需要实现多个接口的添加和注册,本框架采用Attribute特性来扫描接口,并添加到相关的注册中心,比如consul或etcd。

2.1 解决方案介绍:

  整体解决方案不做过多介绍,相信单词的词义已经表达了这个项目的作用。
  小插曲:笔者曾用Easy.Rpc做为项目的主库名称,但上传到nuget后才发现,原来也有名为easy.rpc的包,不过笔者并没找到这个开源作者的网站,无赖之下,想到“点”这个词,也是dotnet的dot开头部分,索性干脆也叫DotEasy了吧。
  笔者的目的,是想通过这个框架(或类库集),来简化微服务的部署和开发,让希望从事微服务NET开发的朋友不再找不到从何入手的窘境。
在Nuget.org上能直接下载编译过的包,地址:https://www.nuget.org/packages/DotEasy.Rpc/,推荐使用这种方式进行安装。
  如果喜欢研究源码,笔者同样也贴上地址:https://github.com/steveleeCN87/doteasy.rpc,不过源码不包含任何依赖,如果编译中出现版本问题,可联系笔者。目前Github和Nuget上就放上了DotEasy.Rpc核心库和DotEasy.Rpc.Consul扩展包,etcd和entry还在测试阶段,就不方便拿出来献丑了。o(∩_∩)o 哈哈
  当然,也欢迎广大爱好开源的朋友加入,共同为NET开源项目做贡献。

2.2 主项目介绍:

Attributes:用于标注该接口为某一特性的方法体,当系统通过Microsoft.Extensions.DependencyInjection自动构建成功后,框架将自动扫描接口上标注过[RpcTagBundle]的接口,形成目标接口列表,以供下面的方法调用。

Core:该核心分为Server和Client以及核心通用三个部分组成:

Client:主要用于通过Ip地址远程调用的方法Invoke实现,以及远程服务端的检查检查实现。

Communally:通用方法库,包括唯一ID生成器(用于标识每次请求所产生的唯一客户端)、通用对象转换器(将复杂对象转换为喜欢默认对象)、异常处理器、序列化生成器。

Server:提供服务宿主,服务执行者、服务入口处理、服务管理、服务定位、服务管理工厂的接口及默认实现。

Proxy:运行时预生成及客户端动态代理模组的接口和方法实现。

Routing:提供地址定位、服务描述、服务路由的接口和方法实现。

Transport:基于protobuf-net和dotnettey构建的二进制序列化、和通信管道和宿主的接口和实现。

所有主要类均已接口的形式提供接口名称,和已默认实现的具体方法体(虚方法),方便在这个基础上进行扩展和重写。

2.3 主项目接口

本节简单介绍一下DotEasy.Rpc主框架的接口的作用。

Attribute:
|---RpcTagBundleAttribute.cs
Core:
|---Client:
|-------Address:
|-----------IAddressResolver.cs
|-------IRemoteInvokeService.cs
|---Server:
|-------IServiceEntryFactory.cs
|-------IServiceEntryLocate.cs
|-------IServiceEntryManager.cs
|-------IServiceEntryProvider.cs
|-------IServiceExecutor.cs
|-------IServiceHost.cs
Proxy:
|---IServiceProxyFactory.cs
|---IServiceProxyGenerater.cs
Routing:
|---IServiceRouteFactory.cs
|---IServiceRouteManager.cs
Transport:
|-------Codec:
|-----------ITransportMessageCodecFactory.cs
|-----------ITransportMessageDecoder.cs
|-----------ITransportMessageEncoder.cs
|---IMessageListener.cs
|---IMessageSender.cs
RpcTagBundleAttribute.cs:所有标记过[RpcTagBundle]特性的接口均会被扫描至doteasy.rpc框架中;
IAddressResolver.cs:地址解析器,提供IPv4地址解析作用,用于IServiceRouteFactory和IRemoteInvokeService定位操作;
IRemoteInvokeService.cs:远程调用服务接口,提供远程服务调用的关键接口,通过IServiceProxyFactory接口代理调用;
IServiceEntryFactory.cs:服务入口工厂接口,对全局服务入口的统一的工厂操作,例如添加,监听,移除,修改服务入口等;
IServiceEntryLocate.cs:服务入口定位接口,通过IAddressResolver过滤和解析,实现服务入口的定位;
IServiceEntryManager.cs:服务入口管理全局管理接口,功能同IServiceEntryFactory相似,但提供更多的服务管理操作,比如负载均衡(采用轮询实现);
IServiceEntryProvider.cs:服务入口提供者接口,一个简单的服务入口提供者程序;
IServiceExecutor.cs:执行服务方法接口,执行远程服务的IRemoteInvokeService;
IServiceHost.cs:服务宿主接口,DotNetty的服务宿主,类似own框架的自宿主程序,提供请求和响应操作;
IServiceProxyFactory.cs:服务代理工厂接口,客户端代理(预编译)的所有操作实现;
IServiceProxyGenerater.cs:服务代理生成接口,客户端代理(预编译)生成器;
IServiceRouteFactory.cs:服务路由工厂接口;
IServiceRouteManager.cs:服务路由全局管理接口;
ITransportMessageCodecFactory.cs:管道消息传输工厂接口;
ITransportMessageDecoder.cs:管道消息解码器接口;
ITransportMessageEncoder.cs:管道消息编码器接口;
IMessageListener.cs:管道消息监听接口,可实现一个消息的接受者和处理程序;
IMessageSender.cs:管道消息发送接口,可实现一个消息的发送者;
 
  通过上面的框架和㢟就能实现客户端到服务端的RPC通信了吗?当然不是,还需要服务注册中心(例如Consul,etcd,zookeeper)来实现。上面只是提供了路由转发,服务定位,客户端预编译的实现等等功能而已,而服务的注册并没提供,因为它不属于基础框架的范畴,笔者对zookeeper的笨重太反感(当然不是说它不好),而consul和etcd十分轻量级,特此又专门新增了两个项目:DotEasy.Rpc.Consul和DotEasy.Rpc.Etcd,用于实现不同注册中心的注册(获取)方法,和健康检测机制。
 
  当然,介绍Consul和Etcd如何实现不是本节的重点,DotEasy.Rpc这个框架的完全剖析也将在日后新开篇章中专门介绍如何去实现一个框架,想必大部分朋友关心的是这个框架能做什么,有什么样的功能,那么,接下来开始吧。

三:如何使用

本系列一直重复的那张图片,噼里啪啦噼里啪啦......此处省略三百字。绕来绕去,难以入手,正如上一篇有朋友推荐如何在Asp.net core中集成、等等。
功能和特性如下:
  1. Apache许可证2协议开放源代码;
  2. 统一组件装配和构造;
  3. 基于protobuf-net实现字节流序列化;
  4. 基于Rosyln的运行时客户端代理生成;
  5. 基于Rosyln的预生成的客户端代理;
  6. 基于DotNetty的传输信道;
  7. 支持客户端以轮询的方式实现负载平衡;
  8. Net Core结构及跨平台;
就这么点,不啰嗦,让我们开始做DEMO。
 

3.1 建立服务接口和服务实现

既然是服务,那么肯定需要以接口interface的方式实现对外暴露,并且,接口的实现不能和接口封装在同一个DLL中,不然还叫什么远程过程调用呢(RPC)呢,如果不了解什么叫接口,去翻一翻C#语言规范。
先定义一个接口,接口方法签名如下:
namespace doteasy.rpc.interfaces
{
[RpcTagBundle]
public interface IUserService
{
Task<string> GetUserName(int id);
Task<bool> Exists(int id);
Task<int> GetUserId(string userName);
Task<DateTime> GetUserLastSignInTime(int id);
Task<IDictionary<string, string>> GetDictionary();
Task TryThrowException();
}
}
很简单,不解释。
其中接口上有个重要特性叫[RpcTagBundle],该特性只允许标记在interface接口上,用于启动时方便框架扫描所有标有该特性的接口。
 
在看实现类
namespace doteasy.rpc.implement
{
public class UserService : IUserService
{
public Task<string> GetUserName(int id)
{
return Task.FromResult($"我传了一个int数字{id}.");
} public Task<bool> Exists(int id)
{
return Task.FromResult(true);
} public Task<int> GetUserId(string userName)
{
return Task.FromResult();
} public Task<DateTime> GetUserLastSignInTime(int id)
{
return Task.FromResult(DateTime.Now);
} public Task<IDictionary<string, string>> GetDictionary()
{
return Task.FromResult<IDictionary<string, string>>(new Dictionary<string, string> { { "key", "value" } });
} public Task TryThrowException()
{
throw new Exception("尝试抛出异常!");
}
}
}
再次重申:注意两篇代码中的命名空间,就是两个不同的程序集(两个项目),千万不能以为笔者仅仅是为了区分而已。
 

3.2 建立asp.net core mvc应用程序

新建一个asp.net core mvc应用程序,模版默认webapi,添加一个控制器HeathController,当然,控制器名称你也可以自由发挥,键入如下代码:
namespace doteasy.rpc.webserver.Controllers
{
[Produces("application/json")]
[Route("api/Health")]
public class HealthController : Controller
{
[HttpGet]
public IActionResult Get() => Ok("ok");
}
}
也十分简单,对外暴露一个路由地址为"api/Health"的API接口,提供GET方法,返回OK信息。
这个接口的作用是用于Consul对服务的健康状态检查回调地址,Consul可以基于HTTP做健康检查,也可以通过gRPC验证服务健康状态。
至此,一个WebApi就建立完成,对外不在通过HTTP做任何接口暴露。
接下来我们添加一个IApplicationBuilder的扩展,用于启动Rpc服务端,代码如下:
using System;
using doteasy.rpc.implement;
using doteasy.rpc.interfaces;
using DotEasy.Rpc.Entry;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; namespace doteasy.rpc.webserver
{
public static class ConsulServerExtensions
{
public static IApplicationBuilder UseConsulServerExtensions(this IApplicationBuilder app, IConfiguration configuration)
{
if (app == null) throw new ArgumentNullException(nameof(app));
BaseServer baseServer = new BaseServer(configuration); //(1)
baseServer.RegisterEvent += collection => collection.AddTransient<IUserService, UserService>(); //(2)
baseServer.Start(); //(3)
return app;
}
}
}
(1):实例化一个BaseServer的服务类型,并使用IConfiguration作为参数。该BaseServer类是封装太DotEasy.Rpc.Entry中的一个实现,主要是简化调用者的代码构建能力,不然,截图一个部分源码瞧瞧
框架的目的是简化编码工作,构建RPC实例也不例外,100多行的构建代码只用3行实现,偷懒者必备。
(2):调用一次RegisterEvent委托事件,用于将接口和实现注册到ServiceCollection容器中。
(3):启动这个RPC服务,其实方法内还有构建ServiceCollection容器等等一大堆方法,你可以自己实现,也可以问笔者要源码。
 
配置文件在哪儿,难道这样就可以了?
当然不是,我们还需要一个appsettings.json的默认配置文件,代码如下:
{
"Hosting.urls": "http://127.0.0.1:5000",
"Hosting.And.Rpc.Health.Check": "http://127.0.0.1:5000/api/health",
"Rpc": {
"IP": "127.0.0.1",
"Port":
},
"ServiceDescriptor": {
"Name": "LZZ.DEV.ServerService"
},
"ConsulRegister": {
"IP": "127.0.0.1",
"Port": ,
"Timeout":
}
}
这篇配置文件很容易理解,这里不再重复啰嗦的解释。
 
至此,一个寄宿于Asp.net core的rpc服务就这样搭建完成,可以启动随Consul启动看看。
友情提示:建议将Asp.net core的默认日志功能关闭,否则Consul会5秒发送一个健康检查请求过来,日志会慢慢的变得十分臃肿,ConfigureLogging((context, logging) => { logging.ClearProviders(); })即可移除Logging日志功能。当然,你也可以做其他修改,毕竟日志在项目中非常重要。
 

3.3 测试启动Consul和Asp.net core

consul如何启动这个,笔者就不再复述了吧,想必看过之前的文章,应该都会启动和使用consul了,截个图,喜悦一下
aaarticlea/png;base64,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" alt="" />
3.1中的六个接口全被注册到consul服务中,不信,我们访问一个具体接口,看看meta信息。
aaarticlea/png;base64,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qYjNdzbdBYq8SffPJR/M/ny7rfjh8DdxpaILMvoqSl7u9q3sOFEURVEURVGPqQgVFEVRFEVRFEXNKkIFRVEURVEURVGzilBBURRFURRFUdSsIlRQFEVRFEVRFDWrCBUURVEURVEURc0qQgVFURRFURRFUbPKhYof/vBHFEVRFEVRFEVRGxVXKiiKoiiKoiiKmlWjoeIv//Kvmh//+M+a//yff/ygJdv86U//ijEtpNh3e98piqIoiqKoCaHiT//0J2aj9RD14x//hDEtqNj3ct8piqIoiqKoCaHCarAeshjTsop9pyiKoiiKonQRKjaoJY7poYp9pyiKoiiKonQRKjaoJY7poYp9pyiKoiiKonRtFiq+9svNL771L/2/v/h37JLpxbK/1Xz5C3+neetr+vl6rTWmL/xa8y1r2lB969eaL1SXk/H+cvM19fzkMaUl22mPyxe+/Fv29K78Mcrn+5fNW+r49tNlWjnGvvplu+M+9LrFqhyTJe37t77897PnqxX3Zcp+d/X3my9/K47Bl7XvFEVRFEVR1Iah4mtvhQa1bdLMRlGatxAqZF67aauUamanjalsPKsVw04coxUquvFvK1T48b31Nfm3bFalhhpkv1w/ju74u8fltHx5e3t9hWPX7q9bNh6fSi1p32W58aDSLm8EJGvZsfVZ+05RFEVRFEVtFCqSJm9CqEgrb4an1fiYfLP6BaP5T0saxnTbZfMdSsa91VChfvvufmtvj1U3tf3j/Jjnx7bedJslyxf73Tb7X648P+G39en0vHa77zJPOWajCBUURVEURVE7rbVDhWvkYmPXNnlmE1Y0vm2FhvLLg41g2XCOjelrb0nj65tXe519dc12Or5dXqlw+2zc9uOet39r34WC7NjGxlrG0y9XNNXtmEdDRXuszH21njea8aXsu1QeAvJwla+jLEIFRVEURVHU9mrNUBGa99iQS+OZNrVpxXmS5erNrjSERgPa1viYpOzmPy1pGOP2v/W1f9k3yzsKFb7ht5tnX36f++2o45fUF778a75hDo16fhzzZno0VMTtxupep9rzeS1p330IkOn2sn2Vr6EVIKzn0rL2naIoiqIoilozVLim6wuVKxVdI66+DstVm8zab7RDjY3J13BjGss3pGPztuOUW4G6hnf9UCGNvSzv/jW3EaoNM1+TY2NcEcgrDQ7ydXos/bS3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" alt="" />
路由和服务均通过这个信息进行定位,我们可以知道,在127.0.0.1的9881端口上,可以访问名为“doteasy.rpc.interfaces.IUserService.Exists_id”的接口。当然,目前是没有任何验证机制的,下一篇会介绍RPC中的统一验证机制。
 

3.4 建立一个客户端

废话不多说,直接上代码:
using System;
using System.Threading.Tasks;
using doteasy.rpc.interfaces;
using DotEasy.Rpc.Entry; namespace DotEasy.Client
{
class Program : BaseClient
{
static void Main()
{
new TestClient();
}
} public class TestClient : BaseClient
{
public TestClient()
{
Task.Run(async () =>
{
var userService = Proxy<IUserService>();
Console.WriteLine($"UserService.GetUserName:{await userService.GetUserName(1)}");
Console.WriteLine($"UserService.GetUserId:{await userService.GetUserId("rabbit")}");
Console.WriteLine($"UserService.GetUserLastSignInTime:{await userService.GetUserLastSignInTime(1)}");
Console.WriteLine($"UserService.Exists:{await userService.Exists(1)}");
Console.WriteLine($"UserService.GetDictionary:{(await userService.GetDictionary())["key"]}");
}).Wait();
}
}
}
如你所见,我们就像在调用接口一样的去调用了RPC远程服务,中间的所有操作都是透明的,不需要关心的,唯一多了一句是Proxy<IUserService>();使用代理模式动态生成了RPC远程客户端,该操作又被笔者封装在了BaseClient中,一切都为了使用者简单。
 

3.5 跑跑客户端看看结果

info: DotEasy.Rpc.Core.Communally.Convertibles.Impl.DefaultTypeConvertibleService[]
发现了以下类型转换提供程序:DotEasy.Rpc.Core.Communally.Convertibles.Impl.DefaultTypeConvertibleProvider
info: DotEasy.Rpc.Core.Communally.IdGenerator.Impl.DefaultServiceIdGenerator[]
方法:System.Threading.Tasks.Task`[System.String] GetUserName(Int32) 生成服务Id:doteasy.rpc.interfaces.IUserService.GetUserName_id
info: DotEasy.Rpc.Core.Communally.IdGenerator.Impl.DefaultServiceIdGenerator[]
方法:System.Threading.Tasks.Task`[System.Boolean] Exists(Int32) 生成服务Id:doteasy.rpc.interfaces.IUserService.Exists_id
info: DotEasy.Rpc.Core.Communally.IdGenerator.Impl.DefaultServiceIdGenerator[]
方法:System.Threading.Tasks.Task`[System.Int32] GetUserId(System.String) 生成服务Id:doteasy.rpc.interfaces.IUserService.GetUserId_userName
info: DotEasy.Rpc.Core.Communally.IdGenerator.Impl.DefaultServiceIdGenerator[]
方法:System.Threading.Tasks.Task`[System.DateTime] GetUserLastSignInTime(Int32) 生成服务Id:doteasy.rpc.interfaces.IUserService.GetUserLastSignInTime_id
info: DotEasy.Rpc.Core.Communally.IdGenerator.Impl.DefaultServiceIdGenerator[]
方法:System.Threading.Tasks.Task`[System.Collections.Generic.IDictionary`[System.String,System.String]] GetDictionary() 生成服务Id:doteasy.rpc.interfaces.IUserService.GetDictionary
info: DotEasy.Rpc.Core.Communally.IdGenerator.Impl.DefaultServiceIdGenerator[]
方法:System.Threading.Tasks.Task TryThrowException() 生成服务Id:doteasy.rpc.interfaces.IUserService.TryThrowException
info: DotEasy.Rpc.Core.Client.Address.Resolvers.Implementation.DefaultAddressResolver[]
准备为服务id:doteasy.rpc.interfaces.IUserService.GetUserName_id,解析可用地址
info: DotEasy.Rpc.Consul.ConsulServiceRouteManager[]
准备获取所有路由配置。
info: DotEasy.Rpc.Core.Client.Address.Resolvers.Implementation.DefaultAddressResolver[]
根据服务id:doteasy.rpc.interfaces.IUserService.GetUserName_id,找到以下可用地址:127.0.0.1:
info: DotEasy.Rpc.Core.Client.Implementation.RemoteInvokeService[]
使用地址:'127.0.0.1:9881'进行调用
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
准备为服务端地址:127.0.0.1:9881创建客户端。
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
准备发送消息。
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
准备获取Id为:0b720018feda4e4192937dfbb76eeb66的响应内容。
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
消息发送成功。
UserService.GetUserName:我传了一个int数字1.
info: DotEasy.Rpc.Core.Client.Address.Resolvers.Implementation.DefaultAddressResolver[]
准备为服务id:doteasy.rpc.interfaces.IUserService.GetUserId_userName,解析可用地址
info: DotEasy.Rpc.Consul.ConsulServiceRouteManager[]
准备获取所有路由配置。
info: DotEasy.Rpc.Core.Client.Address.Resolvers.Implementation.DefaultAddressResolver[]
根据服务id:doteasy.rpc.interfaces.IUserService.GetUserId_userName,找到以下可用地址:127.0.0.1:
info: DotEasy.Rpc.Core.Client.Implementation.RemoteInvokeService[]
使用地址:'127.0.0.1:9881'进行调用
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
准备为服务端地址:127.0.0.1:9881创建客户端。
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
准备发送消息。
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
准备获取Id为:e14b7606b4d54a66af81bfe3c7df46d4的响应内容。
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
消息发送成功。
info: DotEasy.Rpc.Core.Communally.Convertibles.Impl.DefaultTypeConvertibleService[]
准备将 System.Int64 转换为:System.Int32
UserService.GetUserId:
info: DotEasy.Rpc.Core.Client.Address.Resolvers.Implementation.DefaultAddressResolver[]
准备为服务id:doteasy.rpc.interfaces.IUserService.GetUserLastSignInTime_id,解析可用地址
info: DotEasy.Rpc.Consul.ConsulServiceRouteManager[]
准备获取所有路由配置。
info: DotEasy.Rpc.Core.Client.Address.Resolvers.Implementation.DefaultAddressResolver[]
根据服务id:doteasy.rpc.interfaces.IUserService.GetUserLastSignInTime_id,找到以下可用地址:127.0.0.1:
info: DotEasy.Rpc.Core.Client.Implementation.RemoteInvokeService[]
使用地址:'127.0.0.1:9881'进行调用
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
准备为服务端地址:127.0.0.1:9881创建客户端。
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
准备发送消息。
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
准备获取Id为:d0452b16caeb48ba877da5f69a31b2f8的响应内容。
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
消息发送成功。
UserService.GetUserLastSignInTime:// ::
info: DotEasy.Rpc.Core.Client.Address.Resolvers.Implementation.DefaultAddressResolver[]
准备为服务id:doteasy.rpc.interfaces.IUserService.Exists_id,解析可用地址
info: DotEasy.Rpc.Consul.ConsulServiceRouteManager[]
准备获取所有路由配置。
info: DotEasy.Rpc.Core.Client.Address.Resolvers.Implementation.DefaultAddressResolver[]
根据服务id:doteasy.rpc.interfaces.IUserService.Exists_id,找到以下可用地址:127.0.0.1:
info: DotEasy.Rpc.Core.Client.Implementation.RemoteInvokeService[]
使用地址:'127.0.0.1:9881'进行调用
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
准备为服务端地址:127.0.0.1:9881创建客户端。
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
准备发送消息。
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
准备获取Id为:4e9a218c4abd4551845008d9bc23c31f的响应内容。
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
消息发送成功。
UserService.Exists:True
info: DotEasy.Rpc.Core.Client.Address.Resolvers.Implementation.DefaultAddressResolver[]
准备为服务id:doteasy.rpc.interfaces.IUserService.GetDictionary,解析可用地址
info: DotEasy.Rpc.Consul.ConsulServiceRouteManager[]
准备获取所有路由配置。
info: DotEasy.Rpc.Core.Client.Address.Resolvers.Implementation.DefaultAddressResolver[]
根据服务id:doteasy.rpc.interfaces.IUserService.GetDictionary,找到以下可用地址:127.0.0.1:
info: DotEasy.Rpc.Core.Client.Implementation.RemoteInvokeService[]
使用地址:'127.0.0.1:9881'进行调用
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
准备为服务端地址:127.0.0.1:9881创建客户端。
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
准备发送消息。
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
准备获取Id为:a625fd4a6bd24e6b82983272b8894562的响应内容。
info: DotEasy.Rpc.Transport.Impl.DefaultDotNettyTransportClientFactory[]
消息发送成功。
info: DotEasy.Rpc.Core.Communally.Convertibles.Impl.DefaultTypeConvertibleService[]
准备将 Newtonsoft.Json.Linq.JObject 转换为:System.Collections.Generic.IDictionary`[System.String,System.String]
UserService.GetDictionary:value
注意加粗的文字,是否跟调用接口一样的结果呢,其他的调试日志目前请忽略。
 

四:总结

这样,通过asp.net core + consul + doteasy.rpc便实现了一个简单的远程服务调用,你可以尝试部署到外网,看看是否是远程调用,当然,目前并没有任何的统一网关验证,所以,任何人的机器都可以调用。
 
码字不易,你的推荐是我最大的动力,谢谢。
感谢阅读!

NET Core微服务之路:自己动手实现Rpc服务框架,基于DotEasy.Rpc服务框架的介绍和集成的更多相关文章

  1. 简单RPC框架-基于Consul的服务注册与发现

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  2. .NET Core微服务之路:文章系列和内容索引汇总 (v0.52)

    微服务架构,对于从事JAVA架构的童鞋来说,早已不是什么新鲜的事儿,他们有鼎鼎大名的Spring Cloud这样的全家桶框架支撑,包含微服务核心组件如 1. Eureka:实现服务注册与发现. 2. ...

  3. .NET Core微服务之路:不断更新中的目录 (v0.43)

    原文:.NET Core微服务之路:不断更新中的目录 (v0.43) 微服务架构,对于从事JAVA架构的童鞋来说,早已不是什么新鲜的事儿,他们有鼎鼎大名的Spring Cloud这样的全家桶框架支撑, ...

  4. NET Core微服务之路:基于Ocelot的API网关Relay实现--RPC篇

    前言 我们都知道,API网关是工作在应用层上网关程序,为何要这样设计呢,而不是将网关程序直接工作在传输层.或者网络层等等更底层的环境呢?让我们先来简单的了解一下TCP/IP的五层模型.     (图片 ...

  5. 『学了就忘』Linux服务管理 — 77、RPM包安装基于xinetd的服务的管理

    目录 1.基于xinetd服务的启动管理 (1)telnet服务安装 (2)telnet服务启动 2.基于xientd服务的自启动管理 现在Linux系统中基于xinetd的服务越来越少了,但Linu ...

  6. NET Core微服务之路:实战SkyWalking+Exceptionless体验生产环境下的追踪系统

    前言 当一个APM或一个日志中心实际部署在生产环境中时,是有点力不从心的. 比如如下场景分析的问题: 从APM上说,知道某个节点出现异常,或延迟过过高,却不能及时知道日志反馈情况,总不可能去相应的节点 ...

  7. NET Core微服务之路:实战SkyWalking+Exceptionless体验生产下追踪系统

    原文:NET Core微服务之路:实战SkyWalking+Exceptionless体验生产下追踪系统 前言 当一个APM或一个日志中心实际部署在生产环境中时,是有点力不从心的. 比如如下场景分析的 ...

  8. .NET Core微服务之路:利用DotNetty实现一个简单的通信过程

    上一篇我们已经全面的介绍过<基于gRPC服务发现与服务治理的方案>,我们先复习一下RPC的调用过程(笔者会在这一节的几篇文章中反复的强调这个过程调用方案),看下图

  9. .NET Core微服务之路:基于gRPC服务发现与服务治理的方案

    重温最少化集群搭建,我相信很多朋友都已经搭建出来,基于Watch机制也实现了出来,相信也有很多朋友有了自己的实现思路,但是,很多朋友有个疑问,我API和服务分离好了,怎么通过服务中心进行发现呢,这个过 ...

随机推荐

  1. JavaScript学习-3——数组、函数、递归

    本章目录 -----------①数组 -----------②函数 -----------③递归 一.数组 弱类型:任何类型数据,且没有强度限制: 强类型:同一类型的数据存储的集合(内存中连续存储) ...

  2. 一次sendmsg的改造过程

    比较蛋疼的一个改造过程,简单记录一下. 场景:用户态使用sendmsg发包,tcp报文,由于内核实现过程中存在一次kernel_read,也就是存在将pagecache中的内容拷贝一次的问题. 为了减 ...

  3. cdnbest里站点域名不同步到节点,报400错误的一般原因

    报400错误一般是站点里的域名没有同步到节点上面的原因,产生的原因一般是下面两点原因: 1.检查节点列表如下图所示的状态是否打钩,这是节点和主控的通信状态,打叉表示连接有问题 这里打叉的几种原因(1) ...

  4. cdnbest独立主控配置自定义错误页面

    注:自定义错误的域名最好配置ssl,不配碰到有使用ssl的域名,错误码显示就会有问题 (1)登陆管理后台点区域列表-->配置-->错误url 解析一个域名到你的cdn主控,然后输入这个ur ...

  5. 100-days: twelve

    Title:   Mark Zuckerberg wants Facebook's to emulate China's WeChat, but can it? emulate v.效仿,模仿 As ...

  6. java基础 ---- 练习for循环

    -----   使用for循环打印图形 //打印矩形 public class Print { public static void main(String[] args) { for(int i=1 ...

  7. Java中两个线程是否可以同时访问同一个对象的两个不同的synchronized方法?

    不可以!!! 多个线程访问同一个类的synchronized方法时, 都是串行执行的 ! 就算有多个cpu也不例外 ! synchronized方法使用了类java的内置锁, 即锁住的是方法所属对象本 ...

  8. Spark大数据针对性问题。

    1.海量日志数据,提取出某日访问百度次数最多的那个IP. 解决方案:首先是将这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中.注意到IP是32位的,最多有个2^32个IP.同样可以采 ...

  9. unable to bind listening socket for address '127.0.0.1:9090': Address already in use (98)

    unable to bind listening socket for address '127.0.0.1:9090': Address already in use (98) php-fpm 启动 ...

  10. IoGetRelatedDeviceObject学习

    PDEVICE_OBJECT IoGetRelatedDeviceObject( IN PFILE_OBJECT FileObject ) /*++ Routine Description: This ...