目前Spring Cloud所支持的服务注册中心有
- Eureka
- Consul
- Zookeeper
从一个Spring Cloud Config Client的角度来看, 其启动行为可分为Config First Bootstrap和 Discovery First Bootstrap, 什么意思呢,先说Config Firtst, 即Config Client启动时会先去Config Server读取配置,而Discovery First 则是先去服务注册中心去搜索服务(配置服务)。
如果你的服务注册中心使用的是Eureka或者Consul, bootstrap.yml的配置方式(Zookeeper不支持)
spring:
cloud:
config:
discovery:
enabled: true
serviceId: config-server
其中serviceId对应注册中心中所注册的服务ID, 在eureka中spring environment的取值有如下对应关系
- ${spring.application.name} // service ID in eureka
- ${spring.application.name} // virtual host in eureka
- ${server.port} // non-secure port
容易踩得坑
Eureka Health Check
文档说明
不要将eureka.client.healthcheck.enabled: true配置在bootstrap.yml里,否则eureka的后台会显示服务状态是UNKNOWN, 但是此外,下面的配置一定要放在bootstrap.yml,如果你错放在application.yml里会无法发现服务
eureka:
client:
serviceUrl:
defaultZone: http://yourhost:yourport/eureka/