Ocelot + Consul 无法转发IP问题

现象

Ocelot + Concul 进行访问
Ocelot Concul 服务都部署在同一台机器上时,访问正常
服务部署在另外一台机器上时,无法访问 显示 '102 (unknown) status code of request URI:
发现Ocelot 日志显示是 hostname/api

所有 换了一台电脑就无法访问了

Ocelot 是 C# .net6 23.3.3

解决方法

在官网上查到
https://ocelot.readthedocs.io/en/latest/features/servicediscovery.html
在这里插入图片描述
这里就会直接访问服务的ip

public class MyConsulServiceBuilder : DefaultConsulServiceBuilder
{
    public MyConsulServiceBuilder(Func<ConsulRegistryConfiguration> configurationFactory, IConsulClientFactory clientFactory, IOcelotLoggerFactory loggerFactory)
        : base(configurationFactory, clientFactory, loggerFactory) { }
    // I want to use the agent service IP address as the downstream hostname
    protected override string GetDownstreamHost(ServiceEntry entry, Node node) => entry.Service.Address;
}
services.AddOcelot()
    .AddConsul<MyConsulServiceBuilder>();
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值