yi念之间资料

本文主要介绍yi念之间资料 方法和在新技术下所面对的“挑战”,方便大家深入理解yi念之间资料 过程。本文也将分享yi念之间资料 所遇到的问题和应对策略,怎么解决怎么做的问题。
通过深入本文可以理解代码原理,进行代码文档的下载,也可以查看相应 Demo 部署效果。

前言

    近期在看博客的时候或者在群里看聊天的时候,发现很多都提到了Ocelot网关的问题。我之前也研究过一点,网关本身是一种通用的解决方案,主要的工作就是拦截请求统一处理,比如认证、授权、熔断、限流、注册发现、负载均衡等等。随着服务化的不断盛行,服务拆分,负载均衡等已成为当今软件行业随处可谈的名词了,因此注册中心也随之流行了起来。Ocelot作为网关自然可以集成许多注册中心,官方文档给出了集成Eureka和Consul的解决方案,Eureka可能有的人不是很熟悉,它是Spring Cloud的核心组件之一,其功能就是服务注册发现。随着.Net Core的不断成熟,不知道为啥Consul突然成了.Net Core注册中心和配置中心的主要选择,甚至可以说是首选了,可能是因为功能比较强大,而且是基于GO开发的。Nacos作为后起之秀,功能也非常强大。那天无意中翻了一下发现网上居然没有Ocelot集成到Nacos注册中心的组件,由于我个人非常喜欢通用解决方案,于是决定自己扩展一个Ocelot.Provider.Nacos,代码已经放到了我的GitHub上https://github.com/softlgl/Ocelot.Provider.Nacos,有兴趣的可自行查阅。

概念介绍

Ocelot

    Ocelot是一个用.NET Core实现并且开源的API网关,它具备了许多强大实用的功能,包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、Butterfly Tracing集成。它是由asp.net core middleware组成的一个管道。当获取请求之后会用request builder来构造一个HttpRequestMessage转发到下游的真实服务器,等下游的服务返回response之后再由一个middleware将它返回的HttpResponseMessage映射到HttpResponse上。

  • 官方文档地址 https://ocelot.readthedocs.io/en/latest/
  • 官方GitHub地址 https://github.com/ThreeMammals/Ocelot

Nacos

    关于Nacos我之前的文章搭建一套ASP.NET Core+Nacos+Spring Cloud Gateway项目已经有过介绍了。Nacos是阿里巴巴开源的致力于服务发现、配置和管理微服务的框架。提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。一般用到的最多的就是当做配置中心和注册中心。

  • 中文官网地址:https://nacos.io/zh-cn/
  • 官方GitHub地址:https://github.com/alibaba/nacos

Ocelot.Provider.Nacos

开发环境

  • 基于.Net Core 3.1,这个是必须的,因为最新稳定版的Ocelot是在.Net Core 3.1上构建的,而我恰好选择的是这个版本的Ocelot
  • Ocelot选择的是目前最新的稳定版本 v16.0.1
  • Nacos访问组件实用的是nacos-sdk-csharp,具体引用的是
    <PackageReference Include="nacos-sdk-csharp-unofficial" Version="0.2.7" /> 

    它其实是有另一个nacos-sdk-csharp-unofficial.AspNetCore版本的这个是针对Asp.Net Core程序集成Nacos使用的,Ocelot也是基于Asp.Net Core搭建起来的,但是我没有选用nacos-sdk-csharp-unofficial.AspNetCore,主要是因为虽然AspNetCore版本的集成起来更方便,但是为了让它能更好的适配到Ocelot服务注册和发现上,我需要自己改造一下原本的使用方式。

集成到Ocelot

将Ocelot.Provider.Nacos的方式非常简单基本上和Ocelot.Provider.Eureka和Ocelot.Provider.Consul是一致的,首先新建一个已经集成了Ocelot的Asp.Net Core项目,这里就不演示如何搭建的了,如果有不熟悉的可以查看我的demo示例https://github.com/softlgl/Ocelot.Provider.Nacos/tree/master/demo/ApiGatewayDemo,项目搭建好之后引入Ocelot.Provider.Nacos包

<PackageReference Include="Ocelot.Provider.Nacos" Version="1.0.0" /> 

然后在ConfigureServices中添加注册方法AddNacosDiscovery

public void ConfigureServices(IServiceCollection services) {    //注册服务发现    services.AddOcelot().AddNacosDiscovery(); } 

代码上做这么多就可以了,其他的主要工作就在配置上了,近期新版本的Ocelot相对于之前老版本有些地方改动还是非常大的,网上很多示例都是老版本的,所以参考官方文档搭建还是比较靠谱的。接下来我们打开Ocelot的配置文件配置注册中心相关的

{   "Routes": [     {       // 用于服务发现的名称,也就是注册到nacos上的名称       "ServiceName": "productservice",       "DownstreamScheme": "http",       "DownstreamPathTemplate": "/productapi/{everything}",       "UpstreamPathTemplate": "/productapi/{everything}",       "UpstreamHttpMethod": [ "Get", "Post" ],       "LoadBalancerOptions": {         "Type": "RoundRobin"         },       // 使用服务发现       "UseServiceDiscovery": true     }   ],   "GlobalConfiguration": {     "ServiceDiscoveryProvider": {       // 这里是重点       "Type": "Nacos"     }   } } 

这里只是为Ocelot配置使用配置中心,接下来我们要配置Nacos访问地址相关的,打开appsettings.json,当然你自定义的配置文件也可以,只要程序可以加载得到

"nacos": {     "ServerAddresses": [ "http://localhost:8848" ],     "DefaultTimeOut": 15000,     "Namespace": "",     "ListenInterval": 1000,     // 网
yi念之间资料部分资料来自网络,侵权毕设源码联系删除

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » yi念之间资料

提供最优质的资源集合

立即查看 了解详情