簡體   English   中英

Docker中的Consul和Spring Boot服務-不注銷

[英]Consul and Spring Boot services in Docker - not deregistering

因此,我們使用Spring-Boot編寫了Java微服務,使用Consul進行服務發現和配置管理,並在Docker容器中運行。 所有這些工作正常,但是當容器死亡或服務重新啟動時,舊的服務ID在Consul中永遠不會消失,並且即使在新容器已注冊並顯示所有綠色。

我們沒有使用心跳-但是我找不到太多關於Consul心跳和運行狀況檢查之間的區別的文檔。

這是我的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群集帶來了更多壓力。

是否有人設法使Consul和Spring Boot / Docker服務真正自動注銷? 它實際上並不會導致任何實際問題,但是它使Consul UI在實際監視上/下服務時變得毫無用處。

領事不會自動注銷服務。

有關同一問題的提示,請參見https://groups.google.com/forum/#!topic/consul-tool/slV5xfWRpEE 根據該線程,您需要更新配置或執行代理API調用 由於代理是事實的源頭,因此您不應嘗試通過Catalog API進行更新。 有關詳細信息,請參見GitHub 他們還在Google小組中提到,如果節點正常關閉,則不必注銷服務,但這似乎不是您的用例。

請查看Consul不注銷僵屍服務,以獲取有關使用api或registrator之類的工具自動注銷服務的提示。

您已經提到您正在使用docker容器運行微服務。 您是否將SIGTERM捕獲在Docker容器的入口點腳本中? 如果發送了SIGTERM,則引導應用程序將獲取它,您將看到以下日志,其中顯示微服務正在向Consul注銷。

2017-04-27 09:20:19.854  INFO 6852 --- [on(6)-127.0.0.1] inMXBeanRegistrar$SpringApplicationAdmin : Application shutdown requested.
2017-04-27 09:20:19.857  INFO 6852 --- [on(6)-127.0.0.1] ationConfigEmbeddedWebApplicationContext : Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@afb5821: startup date [Thu Apr 27 09:20:00 EDT 2017]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@130c12b7
2017-04-27 09:20:19.859  INFO 6852 --- [on(6)-127.0.0.1] o.s.c.support.DefaultLifecycleProcessor  : Stopping beans in phase 2147483647
2017-04-27 09:20:19.863  INFO 6852 --- [on(6)-127.0.0.1] o.s.c.support.DefaultLifecycleProcessor  : Stopping beans in phase 0
2017-04-27 09:20:19.863  INFO 6852 --- [on(6)-127.0.0.1] o.s.c.c.s.ConsulServiceRegistry          : Deregistering service with consul: xxxxxxxxxxxxx

這篇博客文章對此進行了討論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM