nacos注册服务 ip 是本地虚拟机ip 而不是本地机器ip呢

来源:8-4 Sentinel控制台

wxywizard

2019-12-26

我发现一个问题,我的nacos server部署在虚拟机里,我的本地启动的content-center工程,为什么注册到nacos里面的是虚拟机的ip 而不是content-center服务所在本机的ip呢?
麻烦老师帮我看下,同样的场景下使用consul注册 是可以拿到本机ip的 也就是 172.20.36.177.
正是因为这个问题导致的sentinel无法和本地通信
图片描述

图片描述

写回答

1回答

大目

2019-12-26

很棒的问题!

和Naocs/Consul无关哈。默认情况下,Spring Cloud注册的是第一块非回环网卡地址所对应的网卡,详见 org.springframework.cloud.commons.util.InetUtils#findFirstNonLoopbackHostInfo 。这意味着如果第一块非回环地址对应的网卡恰好是你那个虚拟网卡,也照样会注册。

解决方法:

//img.mukewang.com/szimg/5e04cd8b0934c2e019421288.jpg

//img1.sycdn.imooc.com/szimg/5e04cd96091e407919641026.jpg


详见我的书《Spring Cloud与Docker微服务架构实战》第二版,4.11节。

建议使用方式1或者2(个人更喜欢2,因为最直观)

2
4
wxywizard
回复
大目
老师针对这个问题我按照你的方法配置之后,nacos注册的ip正确了,但是sentinel Dashboard请求本地的时候,我看日志还是会读虚拟机的ip 导致一直连接不上,这个该怎么处理呢?
2019-12-27
共4条回复

Spring Cloud Alibaba微服务从入门到进阶

面向未来微服务:熟练掌握Spring Cloud Alibaba

3129 学习 · 1327 问题

查看课程