Spring Cloud Eureka 之服务注册信息

Bertha 。 2023-10-05 15:50 87阅读 0赞

SpringBoot提供了Eureka服务自动注册机制,只需要引入 spring-cloud-starter-netflix-eureka-client 依赖并进行简单的配置即可。

本文旨在揭示spring配置和服务注册信息的关联性。

服务注册信息的关键项:

  • appname:服务名称,消费者通过此名称从注册中心获取服务访问地址
  • hostname:服务所在主机名
  • ipAddress:服务所在ip地址
  • instanceId:服务唯一id

在spring中相关的配置为:“spring.application.name”、“eureka.instance.appname”、“eureka.instance.hostname” 、“eureka.instance.prefer-ip-address”。

服务注册信息生成策略

  • hostname 默认为主机名;若配置了 eureka.instance.hostname 属性,则为该属性值;若配置了 eureka.instance.prefer-ip-address=true 属性,则为 ipAddress 的值。
    优先级:eureka.instance.hostname > 主机名
  • appname 默认是unknown;若配置了 spring.application.name 属性,则为该属性值; 若配置了 eureka.instance.appname 属性,则为该属性值。
    优先级:eureka.instance.appname > spring.application.name > unknown
  • instanceId 默认为主机名:server.port;若配置了 spring.application.name 属性,则为 主机名:spring.application.name:server.port

如下示例配置,并展示eureka可视化页面上的对应信息。

  1. server:
  2. port: 8080
  3. spring:
  4. application:
  5. name: api-gateway
  6. eureka:
  7. instance:
  8. hostname: my-hostname
  9. appname: my-appname
  10. client:
  11. service-url:
  12. defaultZone: http://localhost:8761/eureka/

Eureka的信息:
http://localhost:8761
http://localhost:8761/eureka/apps
在这里插入图片描述
appname对应页面上Application
instanceId对应页面上的Status

另:

Spring Cloud Gateway 的路由机制:通过服务名去eureka上查找匹配的Application,获取其hostname信息,通过hostname去访问实际服务。

eureka服务信息配置Bean:
org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration#eurekaInstanceConfigBean

发表评论

表情:
评论列表 (有 0 条评论,87人围观)

还没有评论,来说两句吧...

相关阅读