spring cloud分服务器部署导致client注册到 eureka注册中心、boot admin 失败的问题

由于项目中需要分服务器器部署,所以就把 eureka、boot admin 分开了。但是就发现注册中心虽然显示注册的项目,但是一直调不通。

eureka注册中心

如果你的注册中心没有配置ip,那注册中心Instance ID 默认就是

${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${server.port}}

这样的话一般显示的是机器名+项目名+端口

spring cloud分服务器部署导致client注册到 eureka注册中心、boot admin 失败的问题_第1张图片

点击跳转就可以发现路径是

这种显然路径显然在分服务器上部署是不对的。

所以在分服务器部署的时候要开启client的注册中心ip的配置,如下

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    serviceUrl:
      defaultZone: http://${eurekaUserName}:${eurekaPassWord}@127.0.0.1:9000/eureka/
  instance:
    status-page-url-path: /actuator/info
    health-check-url-path: /actuator/health
#      分服务器部署一定要配置ip
    prefer-ip-address: true
    ip-address: 127.0.0.1

ip-address 指向自己部署client的ip

这样就可以完美解决分服务上的问题。

spring boot admin 

spring boot admin也是一样的,正确的配置如下

  boot:
    admin:
      client:
        url: http://127.0.0.1:9002
        instance:
          prefer-ip: true
#          分服务器部署一定要配置ip
          service-url: http://127.0.0.1:9020

开启 prefer-ip: true

service-url 指向的是自己的当前client 的ip+端口。

具体的例子请参考我的开源项目

https://gitee.com/dreamfeng/spark-platform

你可能感兴趣的:(spring,cloud,java)