領導者選舉

Spring Cloud Kubernetes 領導者選舉機制使用 Kubernetes ConfigMap 實現了 Spring Integration 的領導者選舉 API。

多個應用例項競爭領導權,但領導權只會授予一個。當獲得領導權時,領導者應用會收到一個帶有領導者 ContextOnGrantedEvent 應用事件。應用會週期性地嘗試獲得領導權,領導權將授予第一個呼叫者。領導者將保持領導者身份,直到它從叢集中移除,或者它放棄領導權。當領導權移除發生時,前任領導者會收到 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

領導者選舉資訊貢獻者

Spring Cloud Kubernetes Leader 包含一個 InfoContributor,它將領導者選舉資訊新增到 Spring Boot 的 /actuator/info 端點。此貢獻者提供有關當前領導者的資訊,包括領導者 ID、角色以及當前應用例項是否是領導者。

示例輸出

{
  "leaderElection": {
    "leaderId": "my-app-pod-1",
    "role": "my-role",
    "isLeader": true
  }
}

您可以透過在 application.[properties | yaml] 中將 management.info.leader.enabled 設定為 false 來停用此 InfoContributor

management.info.leader.enabled=false
© . This site is unofficial and not affiliated with VMware.