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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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的设计差异