目前Spring Cloud所支持的服務(wù)注冊(cè)中心有
- Eureka
- Consul
- Zookeeper
從一個(gè)Spring Cloud Config Client
的角度來(lái)看, 其啟動(dòng)行為可分為Config First Bootstrap
和 Discovery First Bootstrap
, 什么意思呢,先說(shuō)Config Firtst
, 即Config Client啟動(dòng)時(shí)會(huì)先去Config Server讀取配置,而Discovery First
則是先去服務(wù)注冊(cè)中心去搜索服務(wù)(配置服務(wù))。
如果你的服務(wù)注冊(cè)中心使用的是Eureka或者Consul, bootstrap.yml的配置方式(Zookeeper不支持)
spring:
cloud:
config:
discovery:
enabled: true
serviceId: config-server
其中serviceId對(duì)應(yīng)注冊(cè)中心中所注冊(cè)的服務(wù)ID, 在eureka中spring environment的取值有如下對(duì)應(yīng)關(guān)系
- ${spring.application.name} // service ID in eureka
- ${spring.application.name} // virtual host in eureka
- ${server.port} // non-secure port
容易踩得坑
Eureka Health Check
文檔說(shuō)明
不要將eureka.client.healthcheck.enabled: true
配置在bootstrap.yml
里,否則eureka的后臺(tái)會(huì)顯示服務(wù)狀態(tài)是UNKNOWN
, 但是此外,下面的配置一定要放在bootstrap.yml
,如果你錯(cuò)放在application.yml
里會(huì)無(wú)法發(fā)現(xiàn)服務(wù)
eureka:
client:
serviceUrl:
defaultZone: http://yourhost:yourport/eureka/