微服务注册到Nacos后如何读取外网IP

当微服务使用Nacos作为服务注册和发现中心时,遇到服务调用失败的情况,原因可能是Nacos注册了错误的IP(如内网IP)。为解决此问题,可以通过Springcloud配置指定首选网络段或在Nacos中设置discovery.ip和networkInterface,确保服务使用正确的外网IP注册,从而保证服务间的正常通信。
摘要由CSDN通过智能技术生成

背景

微服务部署后,各服务是需要相互间调用的,其中服务A在去调用服务B的时候发现无法调用成功。其中服务注册和发现中心以及配置中心使用的是Nacos。Nacos客户端在注册服务时会从机器网卡中选择其中一个IP来注册,当我们要部署的机器存在多个网卡(例如存在虚拟网卡)时,所选则的IP可能不是我们真正想要获取的物理机的IP,所以,当注册的是非真实IP后,另一台机器上的服务调用另一个服务的时后是不可能调通的。

今天在处理系统bug的时候发现了这个bug问题,是因为当我们的服务注册到nacos后,nacos默认读取到了服务所在服务器的内网ip,而没有获取到外网ip

解决方案

当发现这个问题后,就赶紧去Springcloud官网查看了一番解决方案:

发现了这么一个配置:

pring:
  application:
    name: SysManager
  cloud:
    inetutils:
      preferred-networks: 192.168.0         # 配置nacos上容器注册的ip是指定网段

该项配置用来去指定首选IP的,当有多个网卡时,指定该IP地址后(支持正则),客户端在选择IP时就会优先选择符合preferredNetworks配置的IP地址进行注册。

同样的,Nacos也是可以配置自己的首选IP以及网卡选择:

spring.cloud.nacos.discovery.ip:

spring.cloud.nacos.discovery.networkInterface

我们这里的解决方案就是在nacos中国你配置我们的外网ip

好了今天关于微服务注册到Nacos后如何读取外网IP就到这里。

这篇文章因为文字段被标记为质量低,以下文字就是为了打破它的文字段而造成的质量低!

相信和我一样遇到这个问题的的小伙伴们,心里也已经暗自问候了这个产品经理的祖总十八代了吧!

算法实在是不敢苟同,文字的长短和文章的质量有毛线的关系吗?

欢迎大家点击下方公众号卡片,关注《coder练习生》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ybb_ymm

你的鼓励会是对我最大的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值