Eureka注册中心在使用双网卡时候出现的问题记录

目录

Eureka

问题描述

解决方案

版本信息


Eureka

关于eureka的博文非常多,这里引用一篇,具体见《eureka服务注册与发现》

问题描述

先看一下最基本的使用

#application.properties中设置eureka的注册中心server的地址
eureka.client.service-url.defaultZone=http://192.168.1.121:7971/eureka/
@SpringBootApplication
@EnableEurekaClient
public class DsBisprojectApplication {
    public static void main(String[] args) {
        SpringApplication.run(DsBisprojectApplication.class, args);
    }
}

在properties中添加一条配置注册中心的配置项,然后在启动类添加对应注。

默认情况下,在注册中心上显示

可以看到,注册上去的应用是使用的主机名加端口号的形式,关于这种方式,有两个问题和风险:

(1)我们单机调试的时候没问题,但是如果是部署在服务器,通过网关进行访问的时候,很容易出现host没有配置主机名造成访问失败的问题。

(2)如果主机是双网卡的时候,你会发现注册上去的是localhost,这种情况下,必然会造成访问失败。

双网卡情况下注册效果如下:

 

解决方案

网上查了下关于这块的解决案例很多,我自己也进行尝试,这里给出一个在我们项目中生产上使用的方案,主要是调整application.properties中的配置信息,如下所示:

eureka.client.service-url.defaultZone=http://192.168.1.121:7971/eureka/
eureka.instance.ip-address=192.168.1.110
eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=${eureka.instance.ip-address}:${server.port}

其中,在双网卡情况下,eureka.instance.ip-address是一定要配置的,如果仅仅配置后两项,在注册中心上显示的IP是你指定的IP,但其实真正生效注册的IP还是内网IP,如下所示:

按照上述配置,最终显示效果如下:

版本信息

<properties>
     <mysql-connector-version>8.0.16</mysql-connector-version>
     <spring-cloud.version>Finchley.SR1</spring-cloud.version>
     <tx-version>5.0.2.RELEASE</tx-version>
</properties>

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值