zoukankan      html  css  js  c++  java
  • Consul+Ocelot搭建微服务实践--负载均衡

    Ocelot负载均衡介绍

    前面介绍了Ocelot中的路由并简单的介绍了下我对Ocelot的认识,若想了解请戳–>Consul+Ocelot搭建微服务实践–初探路由

    Ocelot可以为每个ReRoute在可用的下游服务之间进行负载平衡。
    负载均衡器类型:

    • LeastConnection -请求服务上最少连接数
    • RoundRobin - 使用轮询的方式请求服务,请求按着顺序来。
    • NoLoadBalancer - 不启动负载均衡,从配置或服务发现提供程序中取第一个可用的下游服务。
    • CookieStickySessions - 使用cookie关联所有相关的请求到制定的服务。

    进行测试

    1、修改启动配置

    applicationUrl配置项配置多个请求地址,为后面测试使用。

    {
      "profiles": {
        "Study.Microservices.Service1": {
          "commandName": "Project",
          "launchBrowser": false,
          "launchUrl": "api/values",
          "applicationUrl": "https://localhost:5011;https://localhost:5066;https://localhost:5088",
          "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development"
          }
        }
      }
    }
    
    2、修改请求方法
    [HttpGet]
    [AllowAnonymous]
     public IActionResult Get()
     {
         var host = Request.HttpContext.Request.Host;
         return Ok($"{host}--service1");
     }
    

    这里通过请求的地址进行区分负载均衡。

    3、修改Ocelot配置
    {
      "ReRoutes": [    
        // API:Service1
        {     
          "DownstreamPathTemplate": "/api/{url}",
          "DownstreamScheme": "https",
          "DownstreamHostAndPorts": [
            {
              "Host": "localhost",
              "Port": "5011"
            },
            {
              "Host": "localhost",
              "Port": "5066"
            },
            {
              "Host": "localhost",
              "Port": "5088"
            }
          ],
          "UpstreamPathTemplate": "/Service1/{url}",
          "UpstreamHttpMethod": [ "Get", "Post" ],
          "LoadBalancerOptions": {
            "Type": "RoundRobin"
          }
        }
      ]
    }
    

    这里的配置就不全部贴了,不清楚的可以查看Consul+Ocelot搭建微服务实践–初探路由

    添加了LoadBalancerOptions配置项,将Type设置为RoundRobin

    4、效果展示

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    分别按照Ocelot配置文件中的顺序进行轮询的方式进行请求的。

    我就只对轮询的方式进行了测试,由于其他配置项本地没法模拟,要进行多个连接进行测试,测试环境我本地很难搭建,所以就没有进行测试,后面公司进行生产的时候进行测试。

    总结

    最开始通过对路由的学习到现在的负载均衡,慢慢的深入到了Ocelot中去,感受到了它的强大之处。想实现负载仅仅一个简单的配置就能够实现,在以前自己还需要接入Nginx进行负载均衡或者通过硬件设备进行负载均衡。
    记录知识是给自己的一个交代,也是给园友们提供服务,作为博主肯定是希望得到园友们的支持!!

    本系列其他文档:

  • 相关阅读:
    java----使用socket模拟简单的http请求服务器,响应简单的文件请求操作
    Java实现的断点续传功能
    C 语言——分支和跳转
    C 语言——嵌套循环例子
    C 语言——循环
    C 语言——运算符、表达式和语句
    C 语言——字符串和格式化输入/输出
    C 语言——基础概论
    C 语言——开篇
    IDEA的安装教程
  • 原文地址:https://www.cnblogs.com/cqxhl/p/12993297.html
Copyright © 2011-2022 走看看