目前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/