2.3微服务-ocelot
网关 ocelot
负载均衡
安全问题:端口太多,调用关系复杂、不能直接调用实例,
服务治理:鉴权授权、限流、缓存、熔断、超时
一、项目安装ocelot nuget包
1 | <PackageReference Include= "Ocelot" Version= "19.0.2" /> |
二、注释原来api管道模型,ocelot接管,添加配置文件configuration.json文件
//builder.Services.AddControllers(); //app.UseAuthorization(); //app.MapControllers();
builder.Services.AddOcelot(); //添加ocelot服务组件 await app.UseOcelot();//替换管道模型
1 | builder.Configuration.AddJsonFile( "configuration.json" , optional: false , reloadOnChange: true ); //添加配置文件 |
三、编写网关配置文件configuration.json
-- /通配路由
-- "Priority": 0 // 路由权重,通配默认0,不可修改
-- 负载均衡策略:RoundRobin 轮询 / LeastConnection 最少连接数 / NoLoadBalance 不负载均衡 / CookieStickySessions 会话粘滞
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | { "Routes" : [ { "DownstreamPathTemplate" : "/api/{url}" , //服务地址 url变量 "DownstreamScheme" : "http" , "DownstreamHostAndPorts" : [ //转发地址 { "Host" : "127.0.0.1" , "Port" : 5000 } ], "UpstreamPathTemplate" : "/T5000/{url}" , //网关地址 url变量 "UpstreamHttpMethod" : [ "Get" , "Post" ] //支持请求类型 }, { "UpstreamPathTemplate" : "/{url}" , "UpstreamHttpMethod" : [ "Get" , "Post" ], "DownstreamPathTemplate" : "/{url}" , //通配路由 "DownstreamScheme" : "http" , "DownstreamHostAndPorts" : [ { "Host" : "127.0.0.1" , "Port" : 5001 }, { "Host" : "127.0.0.1" , "Port" : 5002 }, { "Host" : "127.0.0.1" , "Port" : 5003 } ], "LoadBalancerOptions" : { //负载均衡策略 "Type" : "RoundRobin" //RoundRobin 轮询 / LeastConnection 最少连接数 / NoLoadBalance 不负载均衡 / CookieStickySessions 会话粘滞 }, //"LoadBalancerOptions": { // "Type": "CookieStickySessions", // "Key": "ASP.NET_SessionId", // "Expiry": 1800000 //}, "Priority" : 0 // 路由权重,通配默认0,不可修改 } ] } |
四、启用网关实例、测试成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人