设为首页 加入收藏

TOP

【.NET Core项目实战-统一认证平台】第十六章 网关篇-Ocelot集成RPC服务(六)
2019-09-17 18:25:06 】 浏览:92
Tags:.NET Core 项目 实战 统一 认证 平台 十六 网关 -Ocelot 集成 RPC 服务
quot;OK"); } else {//输出错误 var error = new InternalServerError($"请求路由 {context.HttpContext.Request.Path}未配置后端转发"); Logger.LogWarning($"{error}"); SetPipelineError(context, error); } } private EndPoint GetEndPoint(string ipaddress, int port) { if (IPAddress.TryParse(ipaddress, out IPAddress ip)) { return new IPEndPoint(ip, port); } else { return new DnsEndPoint(ipaddress, port); } } } }

5、启动Rpc客户端配置

目前Rpc的客户端配置我们还没启动,只需要在AddCzarOcelot中添加相关注入即可。

var service = builder.First(x => x.ServiceType == typeof(IConfiguration));
var configuration = (IConfiguration)service.ImplementationInstance;
//Rpc应用
builder.AddSingleton<ICzarRpcProcessor, CzarRpcProcessor>();
builder.AddSingleton<IRpcRepository, SqlServerRpcRepository>();
builder.AddLibuvTcpClient(configuration);

6、配置客户端

最后别忘了配置Rpc客户端信息是否启用证书信息,为了配置信息的内容。

{
  "CzarHost": {
    "ProxyEndPoint": true,
    "IsSsl": "false",
    "PfxPath": "cert/datasync.pfx",
    "PfxPassword": "bl123456",
    "ClientConfig": {
      "Demo.Rpc.Hello": {
        "Host": "127.0.0.1",
        "Port": 7711,
        "Timeout": 20
      }
    }
  }
}

现在让网关集成Rpc功能全部配置完毕。

四、网关Rpc功能测试

本次测试我在原有的网关基础上,增加不同类型的Rpc调用,就按照不同维度测试Rpc调用功能,本次测试案例是建立在Czar.Rpc 服务端基础上,正好可以测试。

1、测试路由参数

请求路径/hello/{no}/{name},调用的服务端方法Hello,传入的两个参数分别是no ,name

可以在服务器端添加断点调试,发现确实接收到请求信息,并正常返回,下面是PostMan测试结果。

2、使用Query方式传递参数

请求路径/rpc/query,调用的服务端方法还是Hello,参数分别是no ,name

3、使用Post方式传递Json

请求路径/rpc/body,调用的服务器方法是HelloSendModel

4、混合参数使用

请求的路径/rpc/bodyparm/{name},调用的服务器端方法是HelloSendModelParm

所有的返回结果可自行调试测试,发现都能达到预期结果。

同时此网关还是支持默认的http请求的,这里就不一一测试了。

五、总结

本篇我介绍了什么是Rpc,以及Czar.Rpc的基本使用,然后使用Czar.Rpc框架集成到我们基于Ocelot扩展网关中,并实现了不能方式的Rpc调用,可以在几乎不改变现有流程的情况下很快速的集成进去,这也是Ocelot开发框架的魅力所在。

如果在使用过程中有什么问题或建议,可以在.NET Core项目实战交流群(637326624)中联系作者。

最后本文涉及的所有的源代码可在https://github.com/jinyancao/czar.gateway中下载预览。

首页 上一页 3 4 5 6 下一页 尾页 6/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇ASP.NET Core 项目简单实现身份验.. 下一篇基于aws api gateway的asp.net co..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目