有两个具有以下配置的 eureka 服务器(比如 ES1 和 ES2)。
spring:
profiles: production
server:
port: 8761
eureka:
client:
registerWithEureka: true
fetchRegistry: true
serviceUrl:
defaultZone: http://${eureka.peer.hostname}:8761/eureka/
同步工作,但在发布到生产期间,当一个 eureka 服务器(比如 ES2)关闭时,另一个 eureka 服务器(ES1)仍然维护旧的缓存信息,并且当 ES2 重新启动时,它会注册 eureka 客户端但取消注册旧客户端不会发生,这会导致功能区负载均衡器使用过时的信息。
使用以下配置注册尤里卡客户端。
eureka:
instance:
metadataMap:
instanceId: ${service.contextPath}:${spring.application.instance_id:${random.value}}
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
为什么旧实例没有从尤里卡服务器上注销?因此,我们必须完全关闭并重新启动我们的基础设施。