开发者社区> 问答> 正文

注册服务获取IP的问题

用docker swarm来部署的nacos和服务。

服务容器启动后,会有两个IP地址,一个是内置的ingress网络的地址(10.255.12.245),另外一个是我自定义的网络的地址(10.0.0.27)。 在nacos服务列表里看到,注册的服务用的IP地址都是ingress网络的IP地址,而没有用我自定义的网络的IP地址。而在sentinel和spring cloud admin中,识别出来的IP地址,都是自定义的网络地址。

我不知道这是随机出现的巧合,还是sentinel和spring cloud admin对此有特殊的处理,我尝试启动多个容器,发现结果都是这样的,nacos总是用ingress网络的IP地址,而sentinel和spring cloud admin总是用自定义网络的地址。

展开
收起
一人吃饱,全家不饿 2021-02-01 19:51:44 924 0
来自:阿里开源
1 条回答
写回答
取消 提交回答
  • nacos-server是作为服务发现的中心,当nacos-client注册到nacos-server,之后client之间如何通讯是根据client配置的实例ip及port决定的。ip是否可达是根据client之间的网络拓扑决定的。所以设计为client自己配置ip!

    这种client端注册代码,重写NacosDiscoveryClientAutoConfiguration 并设置NacosDiscoveryProperties中的信息,例如ip

    2021-02-01 19:51:55
    赞同 展开评论 打赏
问答地址:
来源圈子
更多
收录在圈子:
+ 订阅
阿里巴巴相信开源的世界里人人贡献代码,人人获得收益,共同创造一个互帮互利的社区,促进技术进步和发展。
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载