Ocelot的使用(负载均衡实现)

上次我们将了Ocelot的网的实现,可以通过访问网关将请求转发到后台的webapi程序里。Ocelot还支持负载均衡的实现,只需配置文件进行修改。

继续上次的项目,我们建立了两个示例的webpai项目,Service1和Service2里面的实现都是一样的,都简单的建立了一个webpai的功能。

Service1运行7001端口,Service2运行7002端口

修改我们的Gateway项目中的网关配置文件ocelot.json

{
  "ReRoutes": [
    {
      //Upstream表示上游请求,即客户端请求到API Gateway的请求
      "UpstreamPathTemplate": "/Service1/{url}", //请求路径模板
      "UpstreamHttpMethod": [ "Get", "Post" ], //请求方法数组

      "UseServiceDiscovery": false, //启用服务发现

      //Downstream表示下游请求,即API Gateway转发的目标服务地址
      "DownstreamPathTemplate": "/api/{url}", //下游请求地址模板
      "DownstreamScheme": "http", //请求协议,目前应该是支持http和https
      //A***************指定单个转发地址
      //"DownstreamHostAndPorts": [ //请求服务地址
      //  {
      //    "Host": "localhost",
      //    "Port": 7001
      //  }
      //],
      B***************指定多个转发地址 用于负载均衡
      "DownstreamHostAndPorts": [
        {
          "Host": "localhost", //下游地址
          "Port": 7001 //下游端口号
        },
        {
          "Host": "localhost",
          "Port": 7002
        }
      ],
      ///**配置负载
      //LeastConnection: 最少连接,跟踪哪些服务正在处理请求,并把新请求发送到现有请求最少的服务上。该算法状态不在整个Ocelot集群中分布。
      //RoundRobin: 轮询可用的服务并发送请求。 该算法状态不在整个Ocelot集群中分布。
      //NoLoadBalancer: 不负载均衡,从配置或服务发现提供程序中取第一个可用的下游服务。
      //最新版本Ocelot配置轮询方式如下:
      //**/
      "LoadBalancerOptions": {
        "Type": "RoundRobin"
      },
      老版本Ocelot配置轮询方式如下:
      "LoadBalancer": "RoundRobin"
    }
  ],
  "GlobalConfiguration": {
    //"ServiceDiscoveryProvider": {
    //  "Host": "127.0.0.1",
    //  "Port": 8500,
    //  "Type": "PollConsul"
    //}
  }
}

然后将三个项目都启动,我们访问http://localhost:7000/Service1/Values/GetById?id=123

就会再Service1和Service2两个程序的webapi中进行轮询,因为我们配置负载为RoundRobin轮询模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值