领导者选举
Spring Cloud Kubernetes 领导者选举机制使用 Kubernetes ConfigMap 实现了 Spring Integration 的领导者选举 API。
多个应用程序实例竞争领导权,但只会授予给一个。当被授予领导权时,领导者应用程序会收到一个带有领导权 Context
的 OnGrantedEvent
应用程序事件。应用程序会定期尝试获得领导权,领导权会授予给第一个调用者。领导者将保持领导地位,直到它从集群中移除,或者它放弃领导权。当领导权移除发生时,之前的领导者会收到 OnRevokedEvent
应用程序事件。移除后,集群中的任何实例都可以成为新的领导者,包括旧的领导者。
要将其包含在您的项目中,请添加以下依赖项。Fabric8 领导者实现
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-kubernetes-fabric8-leader</artifactId>
</dependency>
要指定用于领导者选举的 configmap 的名称,请使用以下属性。
spring.cloud.kubernetes.leader.config-map-name=leader