开发者社区 > 云原生 > 正文

spring-cloud-dubbo服务注册获取到的本地IP和Dubbo自己获取到的IP不一致。

测试环境:

spring-cloud-alibaba : 2.1.0.RELEASE 使用 spring-cloud-starter-alibaba-nacos-discovery 和 spring-cloud-starter-dubbo 两个组件。 在本地单网卡情况下,一切正常,服务注册与发现都可用。

在测试环境,docker部署(net: "host"),多网卡情况下, org.apache.dubbo.common.utils.NetUtils.getLocalHost() 得到的是 docker 的ip 172.17.0.1, 而 org.springframework.cloud.commons.util.InetUtils.findFirstNonLoopbackHostInfo().getIpAddress()得到的却是本机IP 10.133.0.123。

这样就会有一个问题,本地环境想消费测试环境里的某个服务时,找不到。本地向nacos注册的IP与测试环境IP 10.133.0.123 在同一网内。找不到 172.17.0.1, 这个IP。

原提问者GitHub用户mostcool

展开
收起
白夜行fighting 2023-06-11 10:21:05 284 0
1 条回答
写回答
取消 提交回答
  • Dubbo Spring Cloud支持InetUtils,您可以使用Spring.Cloud.InetUtils前缀来配置一些配置。

    原回答者GitHub用户fangjian0423

    2023-06-11 11:25:31
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
Dubbo开源现状与2.7规划 立即下载
Dubbo分布式服务治理实战 立即下载
《Dubbo 3.0 前瞻》 立即下载