继续对之前的项目进行修改

对Gateway项目中的ocelot.json配置文件进行修改,对于负载均衡的轮询模式还是在Ocelot的配置文件中配置的

"LoadBalancerOptions": {
        "Type": "RoundRobin"
      }

其实只需要Ocelot配置的服务名对应在Consul中有多个服务实例就行了。

{"ReRoutes": [{"UpstreamPathTemplate": "/Service2/{url}","UpstreamHttpMethod": [ "Get", "Post" ],"UseServiceDiscovery": true,"ServiceName": "demoName","DownstreamPathTemplate": "/api/{url}","DownstreamScheme": "http",//"DownstreamHostAndPorts": [//  {//    "Host": "localhost",//    "Port": 5001//  }//],"LoadBalancerOptions": {"Type": "RoundRobin"}//缓存//"FileCacheOptions": {//  "TtlSeconds": 30, //缓存时间(秒)//  "Region": "CacheArea" //缓存区(名称自定义),表示改配置缓存放到哪个区域,可以在配置管理中进行维护//}}],"GlobalConfiguration": {"ServiceDiscoveryProvider": {"Host": "127.0.0.1","Port": 8500,"Type": "Consul" //PollConsul}}
}

修改Consul中的配置文件

服务名都是demoName但是有两个服务实例

{"services": [{"id": "consul-service-demo1","name": "demoName","tags": [ "demo" ],"address": "127.0.0.1","port": 5001,"checks": [{"id": "ApiServiceA_Check","name": "ApiServiceA_Check","http": "http://127.0.0.1:5001/api/Health/Index","interval": "10s","tls_skip_verify": false,"method": "GET","timeout": "1s"}]},{"id": "consul-service-demo2","name": "demoName","tags": [ "demo" ],"address": "127.0.0.1","port": 5002,"checks": [{"id": "ApiServiceB_Check","name": "ApiServiceB_Check","http": "http://127.0.0.1:5002/api/Health/Index","interval": "10s","tls_skip_verify": false,"method": "GET","timeout": "1s"}]}]}

通过命令consul agent -dev -config-dir=D:\Soft\consul_1.8.5_windows_amd64启动Consul

然后对Service1的webapi项目分别运行在5001和5002端口处

通过http://localhost:8500可以看到

服务demoName就是我们刚才配置的,可以看到有2个实例

点击进去看可以看到,就是我们刚才配置文件上设置的demoName的两个实例

现在我们启动网关程序Gateway,可以通过http://localhost:5000/Service2/values/GetById?id=123访问得到数据,此时我们随便关掉一个实例

但是通过http://localhost:5000/Service2/values/GetById?id=123刚开始可能会有几次访问不通,到Consul界面总出现上面的画面时就又可以访问到数据了。这是因为Consul设置的

为每10s进行一次健康检查,因此10s内访问的话还会去访问到其中刚关掉的某个实例,当Consul通过健康检查检测到某个服务停掉后就会剔除,接下来就会去访问正常的服务了,

所以之后访问又可正常了。

代码:https://gitee.com/sammy520/OcelotDemo

Ocelot的使用(结合Consul实现负载均衡)相关推荐

  1. ASP.NET Core中Ocelot的使用:基于服务发现的负载均衡

    本系列相关文章: <ASP.NET Core中Ocelot的使用:API网关的应用> <ASP.NET Core中Ocelot的使用:基于Spring Clound Netflix ...

  2. .net core Ocelot Consul 实现API网关 服务注册 服务发现 负载均衡

    大神张善友 分享过一篇 <.NET Core 在腾讯财付通的企业级应用开发实践>里面就是用.net core 和 Ocelot搭建的可扩展的高性能Api网关. Ocelot(http:// ...

  3. Ocelot 入门Demo系列(01-Ocelot极简单Demo及负载均衡的配置)

    来源:https://www.cnblogs.com/7tiny/p/10493805.html [前言] Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请 ...

  4. .net core grpc consul 实现服务注册 服务发现 负载均衡(二)

    在上一篇 .net core grpc 实现通信(一) 中,我们实现的grpc通信在.net core中的可行性,但要在微服务中真正使用,还缺少 服务注册,服务发现及负载均衡等,本篇我们将在 .net ...

  5. 服务网关Ocelot 入门Demo系列(01-Ocelot极简单Demo及负载均衡的配置)

    服务网关Ocelot 入门Demo系列(01-Ocelot极简单Demo及负载均衡的配置) 原文:服务网关Ocelot 入门Demo系列(01-Ocelot极简单Demo及负载均衡的配置) [前言] ...

  6. java负载均衡框架_SpringCloud与Consul集成实现负载均衡功能

    负载均衡(Load Balance,简称LB)是一种服务器或网络设备的集群技术.负载均衡将特定的业务(网络服务.网络流量等)分担给多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性.负 ...

  7. Ocelot(二)- 请求聚合与负载均衡

    Ocelot(二)- 请求聚合与负载均衡 作者:markjiang7m2 原文地址:http://letyouknow.net/ocelot/ocelot-tutorial-2.html 源码地址:h ...

  8. 基于Docker + Consul + Nginx + Consul-template的服务负载均衡实现

    前言 上一篇文章使用 Consul 和 Registrator 在 docker 的容器环境中搭建了服务注册和发现集群.在服务发现和注册的基础上,本文将引入 Nginx反向代理服务器和 Consul- ...

  9. 基于consul实现微服务的服务发现和负载均衡

    一. 背景 随着2018年年初国务院办公厅联合多个部委共同发布了<国务院办公厅关于促进"互联网+医疗健康"发展的意见(国办发[2018]26号)>,国内医疗IT领域又迎 ...

最新文章

  1. c语言万年历设计目的,万年历设计报告
  2. 基于android的记账本论文,(毕业论文)基于安卓的记账本.doc
  3. Java基础之static关键字的用法
  4. 中国已消失的九所世界级大学
  5. PostgreSQL 10.1 手册_部分 II. SQL 语言_第 9 章 函数和操作符_9.18. 数组函数和操作符...
  6. oracle 的使用
  7. 服务器配置多个域名冲突
  8. Halcon教程十四:训练自己的模型然后识别相似的图像
  9. 台式计算机常用总线,计算机中常见的总线有哪些
  10. 在PyG上构建自己的数据集
  11. 使用bash解析xml
  12. android接入华为推送
  13. 用计算机升级ipad系统软件,ipad2版本太低,设置里又没办法升级,咋自己升级ios系统...
  14. java实现ln10_Java数学函数
  15. 前端面试 - JS总结(1) - 基础 (数据类型, 事件与函数, 原型链)
  16. Smartbanner: Intelligent banner design framework that strikes a balance between freedom and rules
  17. 征战希洛克集卡活动显示服务器没角色,希洛克征战模式
  18. python mk趋势检验_时序数据常用趋势检测方法
  19. 【效率为王】超详细 Hexo + Github Pages 博客搭建教程
  20. 输出以个小于1万亿的正整数的拼音读法

热门文章

  1. 图像增强---空域滤波之平滑
  2. 电动汽车感应电动机优化控制与仿真分析
  3. 《设计的品格 探索×呈现×进化的InDesign美学》—第1课1.5节字符
  4. 男生减肚子赘肉简单方法
  5. 妇产科护理学重点归纳
  6. 新制造两年,阿里云迅速完成了“原始积累”
  7. Unity实战篇 | 接入 声网SDK 实现 视频通话——自己动手做一个 视频通话
  8. 基于VoIP视频通话系统构建
  9. 02-linux yum方式快速安装java6步骤,卸载java2步骤
  10. java.util.ConcurrentModificationExceptionat java.util.ArrayList$Itr.checkForComodification