Vì vậy, chúng tôi có Java microservices được viết bằng Spring-Boot, sử dụng Consul để phát hiện dịch vụ và quản lý cấu hình và chạy trong vùng chứa Docker. Tất cả đều hoạt động, nhưng khi một container chết hoặc dịch vụ khởi động lại, id dịch vụ cũ không bao giờ biến mất trong Consul và dịch vụ mãi mãi sau khi hiển thị là "Thất bại" trong giao diện người dùng, mặc dù container mới đã đăng ký và hiển thị tất cả Màu xanh lá.Dịch vụ Consul và Spring Boot trong Docker - không hủy đăng ký
Chúng tôi không sử dụng nhịp tim - nhưng tôi không thể tìm thấy nhiều tài liệu về sự khác biệt giữa nhịp tim và kiểm tra sức khỏe dành cho Lãnh sự.
Dưới đây là bootstrp.yml tôi
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}}
Có các cài đặt khác để cho phép nhịp tim, nhưng các tài liệu nói điều gì đó về vấn đề này đặt căng thẳng thêm về cụm Lãnh.
Có ai quản lý để nhận các dịch vụ Lãnh sự và Spring Boot/Docker thực sự tự động đăng ký không? Nó thực sự không gây ra bất kỳ vấn đề thực sự nào, nhưng nó làm cho Consul UI khá vô dụng khi thực sự giám sát các dịch vụ lên/xuống.
Có lẽ cái này giúp: http://stackoverflow.com/questions/32259323/consul-not-deregistering-zombie-services – gesellix