返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >.Net Core微服务网关Ocelot集成Consul
  • 456
分享到

.Net Core微服务网关Ocelot集成Consul

2024-04-02 19:04:59 456人浏览 安东尼
摘要

有consul基础的都知道,consul可以发现新增的服务,剔除掉无效的服务,赋予应用自动伸缩的能力。而ocelot如果集成了consul,那ocelot也能拥有这些能力,还可以自主

有consul基础的都知道,consul可以发现新增的服务,剔除掉无效的服务,赋予应用自动伸缩的能力。而ocelot如果集成了consul,那ocelot也能拥有这些能力,还可以自主选择负载均衡策略,灵活性更强。

(建议看完前一篇文章再来实践这一篇,不然可能有难度)

上干货。

首先打开上一篇新建好的项目,继续添加nuget包:

然后注册相关服务:

public void ConfigureServices(IServiceCollection services)
        {
            services.AddOcelot()
                .AddConsul()
                .AddConfigStoredInConsul();
        }

接下来还需要修改下配置文件:

{
  "Routes": [
    {
      "DownstreamPathTemplate": "/{url}",
      "DownstreamScheme": "Http",
      //"DownstreamHostAndPorts": [
      //  {
      //    "Host": "123.123.123.123",
      //    "Port": 5050
      //  }
      //],
      "UpstreamPathTemplate": "/MJ/{url}",
      "UpstreamHttpMethod": [ "Get", "Post" ],
      "ServiceName": "study_consul",
      "LoadBalancerOptions": {
        "Type": "RoundRobin"
      }
    }
  ],
  "GlobalConfiguration": {
    "ServiceDiscoveryProvider": {
      "Host": "42.193.182.64",
      "Port": 88
    }
  }
}

注释部分是原先常规的转发规则,变色部分是集成consul以后新增的配置。

这里说下配置项LoadBalancerOptions(负载均衡),官方实现了4个负载均衡器,分别是:

  • 1、LeastConnection - 跟踪哪些服务正在处理请求,并向现有请求最少的服务发送新请求。
  • 2、RoundRobin - 轮询。
  • 3、NoLoadBalancer - 从配置或服务发现中获取第一个可用服务。
  • 4、CookieStickySessions - 使用 cookie 将所有请求粘贴到特定服务器

如果选择了第四个,那么需要额外的参数来描述cookie,比如:

"LoadBalancerOptions": {
        "Type": "CookieStickySessions",
        "Key": "asp.net_SessionId",
        "Expiry": 1800000 //过期时间
    },

关于负载均衡器,本文不多做详解,回到主题。

consul需要单独搭建,所以我准备了一个拥有6个节点的consul集群

然后在集群下注册了3个服务:

这时运行网关并请求,网关会把请求自动转到远程的consul,并且在已有的consul服务中轮询调用。来看一下运行结果:

多刷新几下:

如果你得到了类似的结果,恭喜你,已经完成了集成的操作。同时,还可以解一个新操作:热更新。

热更新

打开consul控制面板,找到Key/Value,你会发现这里多了一个键值对:

进入查看会发现,这是ocelot的配置:

这一份配置文件里包含了当前版本的ocelot支持的所有配置项,并且修改后即时生效。

改个路由证明下:

原来:"UpstreamPathTemplate": "/MJ/{url}"
现在:"UpstreamPathTemplate": "/{url}"

save以后再请求:

这感觉,酸爽。

既然是搞技术,自然不能脱离实际。上面的consul集群、consul客户端、网关程序都部署在不同的阿里云服务器上,和生产环境一样。学习的话,部署到本机也可以,consul单机也可以。如果你没有consul基础或者理解的不清晰,可以看我之前的系列文章,应该有帮助,往前翻一翻就有。友情提醒一下,单体的ocelot、consul禁止上生产,太脆弱,一挂全完。

到此这篇关于.net core微服务网关Ocelot集成Consul的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: .Net Core微服务网关Ocelot集成Consul

本文链接: https://lsjlt.com/news/161648.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • .Net Core微服务网关Ocelot集成Consul
    有consul基础的都知道,consul可以发现新增的服务,剔除掉无效的服务,赋予应用自动伸缩的能力。而ocelot如果集成了consul,那ocelot也能拥有这些能力,还可以自主...
    99+
    2024-04-02
  • .Net Core微服务网关Ocelot基础介绍及集成
    网关是什么 简单来说,网关就是暴露给外部的请求入口。就和门卫一样,外面的人想要进来,必须要经过门卫。当然,网关并不一定是必须的,后端服务通过http也可以很好的向客户端提供服务。但是...
    99+
    2024-04-02
  • .Net Core微服务网关Ocelot超时、熔断、限流
    基本概念 超时、熔断、限流听起来好像很远,但实际上用在方方面面。很多人可能还搞不懂熔断是做什么,其实可以把熔断理解为一种防护措施。做个假设,在微服务体系下,某个下游服务响应很慢,然后...
    99+
    2024-04-02
  • .Net Core微服务网关Ocelot基础知识有哪些
    本篇内容介绍了“.Net Core微服务网关Ocelot基础知识有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!网关是什么简单...
    99+
    2023-06-22
  • .Net Core服务治理Consul健康检查
    继续上一篇的话题,顺便放上一篇的传送门:点这里。 健康检查 经过之前的操作,我的consul已经支持自动扩展,并且调用也很靠谱。但是这里有个问题,一旦服务列表里的某个服务挂了,con...
    99+
    2024-04-02
  • .Net Core服务治理Consul使用服务发现
    先思考一些问题:它是做什么的、以及怎么使用它。带着这些问题往下走。 consul是做什么的 consul用于微服务下的服务治理。服务治理是什么?它包含但不限于:服务发现、服务配置、健...
    99+
    2024-04-02
  • Asp.Net Core使用Ocelot结合Consul实现服务注册和发现
    目录1.服务注册与发现(Service Discovery)2.Consul3.Asp.Net Core向Consul注册服务实例4.项目演示4.1APIGateway项目4.2Co...
    99+
    2024-04-02
  • .Net Core服务治理Consul健康检查方法是什么
    这篇文章主要讲解了“.Net Core服务治理Consul健康检查方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“.Net Core服务治理Consul健康检查方...
    99+
    2023-06-26
  • .Net Core微服务之EventBus的作用是什么
    在.NET Core微服务架构中,EventBus(事件总线)的作用是实现微服务之间的解耦和消息传递。它允许微服务之间通过发送和订阅...
    99+
    2023-09-21
    .Net EventBus 微服务
  • .Net Core微服务rpc框架GRPC通信基础
    什么是rpc? rpc,全称Remote Procedure Call,通过它,你可以像调用本地方法一样调用远程服务。前端可以调用后端方法,后端也可以调用前端方法。其实这个概念并不陌...
    99+
    2024-04-02
  • .Net Core微信服务商二次进件的开发
    最近商城进行微信服务商二次进件的开发,大致有几个点 一,服务商签名 二,服务商证书获取 三,图片上传 四,敏感信息加密 五,查询进件状态 除此之外,就是进件信息的拼装 电商二级商户...
    99+
    2024-04-02
  • .Net Core微服务rpc框架GRPC通信如何运用
    本文小编为大家详细介绍“.Net Core微服务rpc框架GRPC通信如何运用”,内容详细,步骤清晰,细节处理妥当,希望这篇“.Net Core微服务rpc框架GRPC通信如何运用”文章能帮助大家解决疑惑,下面跟着小编的...
    99+
    2023-06-26
  • .Net Core微服务rpc框架GRPC通信实际运用
    序 上一篇博客把grpc的概念说了个大概,介绍了proto的数据类型,基本语法,也写了个小demo,是不是没那么难? 今天要从理论到实际,写两个微服务,并利用grpc完成两者之间的通...
    99+
    2024-04-02
  • 【微服务】服务网关----Gateway
    服务网关----Gateway 1、前言 2、网关简介 3、Gateway简介 4、Gateway快速入门 4.1 基础版 4.2 增强版(引入nacos) ...
    99+
    2023-10-06
    微服务 gateway java 服务网关 网关限流
  • Java微服务Filter过滤器集成Sentinel实现网关限流过程详解
    目录Gateway-过滤器Filter局部路由过滤器使用局部过滤器全局过滤器使用全局过滤器集成Sentinel实现网关限流网关限流API分组限流Gateway-过滤器Filter 过...
    99+
    2023-02-10
    Java微服务过滤器网关限流 Java网关限流 Java过滤器集成Sentinel网关限流
  • .Net Core微服务rpc框架GRPC通信的方法是什么
    本文小编为大家详细介绍“.Net Core微服务rpc框架GRPC通信的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“.Net Core微服务rpc框架GRPC通信的方法是什么”文章能帮助大家解决疑惑,下面跟...
    99+
    2023-06-26
  • Go微服务网关的实现
    目录Go微服务网关网络基础大纲OSI七层网络协议三次握手 与 四次挥手为啥会出现大量的close_waitTCP 为啥需要拥塞控制TCP 拥塞控制为啥会出现粘包,拆包,如何处理产生t...
    99+
    2024-04-02
  • PHP与数据库微服务化的集成
    随着互联网的高速发展,微服务架构已经成为了越来越多企业的首选架构之一。在微服务架构下,每个服务都是一个独立的进程,各个服务之间通过简单的API进行通信,使得系统更加灵活、弹性和可扩展。针对现在的Web开发环境,将PHP与数据库进行微服务化的...
    99+
    2023-05-18
    数据库 PHP 微服务化
  • 来自京东、唯品会对微服务编排、API网关、持续集成的实践分享(上)
    架构师小组交流会:每期选一个时下最热门的技术话题进行实践经验分享。第三期:微服务。微服务架构以其高度的弹性、灵活性和效率的巨大提升,快速受到各领域架构师和技术决策者的关注。它的基本理念是将一个肥大的系统拆分...
    99+
    2024-04-02
  • MongoDB如何与微服务架构集成使用
    MongoDB可以与微服务架构集成使用,通常采用以下几种方式: 使用MongoDB作为微服务架构中的数据存储服务:在微服务架构中...
    99+
    2024-05-07
    MongoDB 微服务
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作