nacos在多网卡环境下选择某个网段

本文探讨了在使用Nacos服务治理时,如何处理多网卡环境下自动注册错误IP的问题。通过介绍spring.cloud.nacos.discovery.ip配置以及spring.cloud.inetutils.preferred-networks的使用,提出了解决方案。同时,针对Docker容器部署中端口冲突和多实例部署的挑战,建议通过预设网络网段和使用特定配置来优化服务发现和负载均衡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      nacos是源自阿里的一款不错的服务治理框架,在不配置ip的情况下,nacos客户都安会通过自身发现的方式来查询到本地的网络ip,然后把这个ip注册到nacos server端。

      但问题出在如果有多个网卡的情况下,就不一定能获取到我们想要的ip地址,这样就可能出现注册到nacos server的ip地址有问题导致其他服务无法访问他,一般有多个网卡的机器多半会部署不同的网段,nacos自身提供了spring.cloud.nacos.discovery.ip来手动配置ip,但是这种方式有一个很大的问题就是多实例部署的情况,因为在容器启动前我们并不知道容器内部的ip,所以这种方式使用的多半是docker宿主的ip地址,这样产生的问题是容器必须对外暴露端口才能通过宿主机访问到docker容器部署的服务,这就给多实例部署带来问题,因为宿主机端口只能被一个docker容器实例占用。

     所以更好的解决方案是不让对应服务暴露端口,这样就可以很方便进行服务的多实例部署,因为服务间是通过服务名访问,ribbon组件可以在多服务实例间进行负载均衡,具体实现方式是通过spring.cloud.inetutils.preferred-networks这个配置来选择对应的网段,但是有个前提:你需要提前知道docker容器内部网络的网段,关于这个笔者部署使用的portainer进行集群部署,创建overlay的网络并配置网段即可,如下图 所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值