Ocelot 负载均衡

Ocelot 负载均衡

 

以上文中项目为例:https://www.cnblogs.com/1285026182YUAN/p/15234331.html

 

 1. 在OService1与OService2中 都增加以下控制器接口

复制代码
namespace OService1.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class TeaController : ControllerBase
    {
        [Route("GetList")]
        [HttpGet]
        public IActionResult GetList()
        {
            return new JsonResult(new { name = "tea", Host = HttpContext.Request.Host.Value });
        }
    }
}
复制代码

 

 

 访问接口:

https://localhost:6001/api/tea/getlist
https://localhost:6002/api/tea/getlist

 

 

 

 

2. 修改 OService.json文件配置

复制代码
{
  "Routes": [
    //路由一
    {
      "DownstreamPathTemplate": "/api/Tea/GetList", //下游路径
      "DownstreamScheme": "https", //http,https
      "DownstreamHostAndPorts": [
        {
          "Host": "localhost", //下游地址
          "Port": 6001 //下游端口
        },
        {
          "Host": "localhost", //下游地址
          "Port": 6002 //下游端口
        }
      ],
      "UpstreamPathTemplate": "/ocelot/GetTea", //上游路径
      "UpstreamHttpMethod": [ "Get" ],
      "LoadBalancerOptions": { "Type": "RoundRobin" } //轮询
    }
  ],
  "GlobalConfiguration": {
    "BaseUrl": "https://localhost:5001"
  }
}
复制代码

 

访问地址:

https://localhost:5001/ocelot/gettea

 

测试: 

 

 

 

 

LeadConnection负载均衡器算法共有4种:

  • LeastConnection 把新请求发送到现有请求最少的服务上

  • RoundRobin 轮询可用的服务并发送请求

  • NoLoadBalancer 不负载均衡,总是发往第一个可用的下游服务

  • CookieStickySessions 使用cookie关联所有相关的请求到制定的服务

 

 

 

 

 

 

 

 

 

 

 

 

 

参考:http://letyouknow.net/ocelot/ocelot-tutorial-2.html
项目:https://gitee.com/wuxincaicai/ocelothost.git

 

posted @   无心々菜  阅读(127)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示