Ocelot+Consul的使用配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 客户端<br>代码配置 "ConsulRegisterOptions" : { "Address" : "http://localhost:8500" , // "http://host.docker.internal:8500" , //Consul 客户端地址 "HealthCheck" : "/healthcheck" , //健康检查地址 "Name" : "ServiceA" , //服务名 "Ip" : "localhost" , //"host.docker.internal", //服务绑定Ip "Port" : "5032" //服务绑定端口 } 代码配置 "ConsulRegisterOptions" : { "Address" : "http://localhost:8500" , // "http://host.docker.internal:8500" , //Consul 客户端地址 "HealthCheck" : "/healthcheck" , //健康检查地址 "Name" : "ServiceA" , //服务名 "Ip" : "localhost" , //"host.docker.internal", //服务绑定Ip "Port" : "5096" //服务绑定端口 } 这里用于ocelot切换,两个项目 |
1 2 3 4 5 6 7 | 客户端<br>builder.Services.Configure<ConsulRegisterOptions>(builder.Configuration.GetSection( "ConsulRegisterOptions" )); builder.Services.AddConsulRegister();app.UseHealthCheckMiddleware(); app.MapGet( "/test" , (IConfiguration configuration) => { return $ "{Assembly.GetExecutingAssembly().FullName};当前时间:{DateTime.Now:G};Port:{configuration[" ConsulRegisterOptions:Port "]}" ; });<br><br>await app.Services.GetService<IConsulRegister>()!.ConsulRegistAsync(); |
ocelot端这里服务端名称ServiceName要和客户端一样,不然gg,找了半天,操蛋
{ "Routes": [ { "DownstreamPathTemplate": "/{url}", //下游(转发的服务地址模板) "DownstreamScheme": "http", "UpstreamPathTemplate": "/ocelot/{url}", //上游(请求路径模板) "UpstreamHttpMethod": [ "Get", "Post" ], "ServiceName": "ServiceA", "UseServiceDiscovery": true, "LoadBalancerOptions": { "Type": "RoundRobin" //轮询 } } ], "GlobalConfiguration": { "BaseUrl": "http://localhost:5181", "ServiceDiscoveryProvider": { //consul 配置信息 "Host": "localhost", "Port": 8500, "Type": "Consul" } } }
builder.Configuration.AddJsonFile("ocelot.json", optional: false, reloadOnChange: true);
builder.Services.AddOcelot().AddConsul();
await app.UseOcelot();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
2023-02-12 NET6 IOC 基本流程 泛型为例( 蒋金楠老师书籍)