我正在使用 Spring boot 开发微服务并使用 eureka 作为服务器。我已在 Eureka 服务器上注册了我的服务,但在 Eureka Dashboard 上,服务名称显示为“未知”,而不是我在 application.yml 中配置的服务名称。
下面是两个 yml 配置 服务器: 端口:8761
春天: 应用: 名称:尤里卡服务器
尤里卡: 实例: 主机名:本地主机 客户: 注册尤里卡:假 获取注册表: false 服务网址: 默认区域:http://${eureka.instance.hostname}:${server.port}/eureka/
尤里卡: 客户: 服务网址: 默认区域:http://localhost:8761/eureka/ 实例: 应用程序名称:报告引擎 服务器: 端口:0 实例: 首选IP地址:true 春天: 应用: 名称:报告引擎
尝试创建一个 bootstrap.yml 文件并添加以下内容:
spring.application.name = instanceName
在您的 application.yml 文件中:
spring:
application:
name: yourname
eureka:
instance:
instanceId: ${spring.application.name}
“instanceId”对于满足您的需求很重要。
将属性default-zone更改为defaultZone。我与你分享对我有用的东西。
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
创建 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
服务器的 Spring 客户端应用程序上的 application.properties 文件中,我有一个拼写错误 application.name=servicename
将其更正为
spring.application.name
后,实例名称显示在eureka
仪表板上。
尝试重新启动您的IDE并尝试将应用程序名称保留为小写字母
( spring.application.name=order-service )
如果您在 app.yaml 文件中添加属性,请确保为要添加的正确配置提供适当的空间,我也遇到过类似的问题,下面是我的 app.yaml 文件,它对我有用;
服务器: 端口:8089 春天: 数据源: url: jdbc:mysql://${DB_HOST:localhost}:3306/productdb 用户名:根 密码:根 driverClassName: com.mysql.cj.jdbc.Driver 杰帕: 数据库平台:org.hibernate.dialect.MySQL8Dialect 休眠: ddl-auto:更新 应用: 名称:产品服务
尤里卡: 实例: 首选 IP 地址:true 客户: 获取注册表:true 注册到尤里卡: true 服务网址: 默认区域:http://localhost:8761/eureka/
它的工作原理如下 spring.application.name=product-service 因此,我们在写入“application”时在“spring”之后提供一个制表符或 2 个空格,然后在写入“name”时再提供一个制表符,然后再输入名称