实例名称在 Eureka Dashboard 上显示为“未知”而不是服务名称
Posted
技术标签:
【中文标题】实例名称在 Eureka Dashboard 上显示为“未知”而不是服务名称【英文标题】:Instance name is displayed as "unknown" on Eureka Dashboard instead of service name 【发布时间】:2017-10-12 03:09:07 【问题描述】:我正在使用 Spring Boot 开发微服务,并使用 eureka 作为服务器。我已经在 Eureka 服务器上注册了我的服务,但在 Eureka Dashboard 上,服务名称显示为“未知”,而不是我在 application.yml 中配置的服务名称。
下面是两个 yml 配置 服务器: 端口:8761
弹簧: 应用: 名称:尤里卡服务器
尤里卡: 实例: 主机名:本地主机 客户: 向尤里卡注册:假 获取注册表:假 服务网址: 默认区域:http://$eureka.instance.hostname:$server.port/eureka/
尤里卡: 客户: 服务网址: 默认区域:http://localhost:8761/eureka/ 实例: 应用名称:报告引擎 服务器: 端口:0 实例: 首选IP地址:真 春天: 应用: 名称:报告引擎
【问题讨论】:
任何想法?我收到此错误。 我已经提到了 spring.application.name=sample 【参考方案1】:尝试创建一个 bootstrap.yml 文件并添加:
spring.application.name = instanceName
【讨论】:
我一直想知道bootstrap.yml和application.yml有什么区别。我知道 bootstrap.yml 包含运行它的应用程序名称和服务器端口等属性。【参考方案2】:在您的 applicaton.yml 文件中:
spring:
application:
name: yourname
eureka:
instance:
instanceId: $spring.application.name
“instanceId”对于满足您的需求很重要。
【讨论】:
【参考方案3】:通过 defaultZone 更改属性 default-zone。我分享你什么对我有用。
application.yml
尤里卡服务器
eureka:
instance:
hostname: localhost
client: # Not a client, don't register with yourself
registerWithEureka: false
fetchRegistry: false
server:
enable-self-preservation: false
server:
port: 8882
尤里卡客户端
spring:
application:
name: customer
eureka:
client:
eureka-connection-idle-timeout-seconds: 60
serviceUrl:
defaultZone: http://localhost:8882/eureka/
healthcheck:
enabled: true
【讨论】:
【参考方案4】:我也遇到了同样的问题。在我试图连接到eureka
服务器的spring 客户端应用程序的application.properties 文件中,我有一个错字application.name=servicename
将其更正为spring.application.name
后,实例名称出现在eureka
仪表板上。
【讨论】:
【参考方案5】:创建 bootstrap.properties 并添加:
spring.application.name = <instanceName>
然后,在 application.properties 中设置:
eureka.instance.hostname=<hostname>
eureka.instance.instance-id=$spring.application.name:$random.int // to have a unique instance id
【讨论】:
以上是关于实例名称在 Eureka Dashboard 上显示为“未知”而不是服务名称的主要内容,如果未能解决你的问题,请参考以下文章
Eureka 实例应用程序名称不适用于 Spring Cloud Gateway
如何在实体框架迁移的“一半”多对多上显式设置索引或外键的名称?