Spring Cloud Eureka 之服务注册信息
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可视化页面上的对应信息。
server:
port: 8080
spring:
application:
name: api-gateway
eureka:
instance:
hostname: my-hostname
appname: my-appname
client:
service-url:
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
还没有评论,来说两句吧...