尤里卡状态 ip 而不是桌面或本地主机

Bam*_*bus 3 spring-boot netflix-eureka

我正在与 Eureka Netflix 合作,但遇到了一个小问题。当应用程序在 eureka 上自行注册时,它会像 DESKTOP 一样注册....

在此处输入图片说明

我想像http://IP:PORT

这是我的服务器属性:

server.port=8761

eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.instance.preferIpAddress=true
logging.level.com.netflix.eureka=OFF
logging.level.com.netflix.discovery=OFF
Run Code Online (Sandbox Code Playgroud)

这是客户端:

spring:
 application:
  name: Test 2
 server:
port: 0
eureka:
 client:
  serviceUrl:
   defaultZone: ${EUREKA_URI:http://localhost:8761/eureka}
  instance:
    preferIpAddress: true
Run Code Online (Sandbox Code Playgroud)

所以我认为这是一些配置问题,但我不知道是什么。

Bam*_*bus 6

我为我找到了更好的解决方案。我像这样更改了属性文件:

eureka config
eureka.name=eureka 
eureka.port=8761
eureka.preferSameZone=false
eureka.shouldUseDns=false
eureka.serviceUrl.default=http://localhost:8761/eureka/v2/
eureka.shouldOnDemandUpdateStatusChange=true
eureka.instance.leaseRenewalIntervalInSeconds=1
eureka.instance.leaseExpirationDurationInSeconds=2
# set application host
server.address=1.1.1.1
#set application port
server.port=8080
#set application name
spring.application.name=application


#configuration to set the ip of host instead of the default localhost
eureka.instance.prefer-ip-address=true
eureka.instance.ip-address=${server.address}
eureka.instance.instance-id=${server.address}:${server.port}
Run Code Online (Sandbox Code Playgroud)

现在最终它将显示在 eureka 上

1.1.1.1:8080


Yan*_*lem 5

状态列中显示的文本是实例 ID。

在客户端使用以下配置:

eureka.instance.preferIpAddress=true
eureka.instance.instance-id=
Run Code Online (Sandbox Code Playgroud)

您可以强制 eureka 仪表板在此列中显示 ip 地址。

该属性eureka.instance.preferIpAddress只是在您请求此实例的地址时返回的地址。因此,如果您未设置eureka.instance.instance-id为 null,则实例 ID 仍包含主机名,但您获得的此实例的链接基于 ip 而不是主机名。

希望这可以帮助