因此,我們使用Spring-Boot編寫Java微服務,使用Consul進行服務發現和配置管理,並在Docker容器中運行。所有這些都在工作,但是當一個容器死亡或服務重新啓動時,舊的service-id在Consul永遠不會消失,並且永久服務在Consul UI中顯示爲「Failing」,儘管新容器已經註冊並顯示了所有綠色。Docker中的Consul和Spring Boot服務 - 未註銷
我們沒有使用心跳 - 但我無法找到關於心跳和健康檢查對領事有什麼區別的文檔。
這裏是我的bootstrp.yml
spring:
application:
name: my-service
cloud:
config:
enabled: false
consul:
host: ${discovery.host:localhost}
port: ${discovery.port:8500}
config:
watch:
wait-time: 30
delay: 10000
profile-separator: "-"
format: FILES
discovery:
prefer-ip-address: true
instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}}
還有其他設置,使心跳加快,但文件說一下這把更多的壓力領事羣集上。
有沒有人設法讓Consul和Spring Boot/Docker服務實際上自動取消註冊?它實際上不會造成任何實際問題,但它使Consul UI非常無用,實際上可以監視up/down服務。
也許這一個幫助:http://stackoverflow.com/questions/32259323/consul-not-deregistering-zombie-services – gesellix