View a markdown version of this page

Einen Broker aus einem Amazon-MSK-Cluster entfernen - Amazon Managed Streaming für Apache Kafka

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Einen Broker aus einem Amazon-MSK-Cluster entfernen

Verwenden Sie diesen Amazon MSK-Vorgang, wenn Sie Broker aus Amazon Managed Streaming für von Apache Kafka (MSK) bereitgestellte Cluster entfernen möchten. Sie können die Speicher- und Rechenkapazität Ihres Clusters reduzieren, indem Sie Gruppen von Brokern entfernen, ohne dass sich dies auf die Verfügbarkeit auswirkt, die Datenbeständigkeit gefährdet ist oder Ihre Datenstreaming-Anwendungen unterbrochen werden.

Sie können Ihrem Cluster weitere Broker hinzufügen, um den Anstieg des Datenverkehrs zu bewältigen, und Broker entfernen, wenn der Datenverkehr nachlässt. Dank der Funktionen zum Hinzufügen und Entfernen von Brokern können Sie Ihre Clusterkapazität optimal nutzen und Ihre MSK-Infrastrukturkosten optimieren. Durch das Entfernen von Brokern haben Sie auf Broker-Ebene die Kontrolle über die vorhandene Clusterkapazität, sodass sie Ihren Workload-Anforderungen gerecht wird und eine Migration zu einem anderen Cluster vermieden wird.

Verwenden Sie die AWS Konsole, die Befehlszeilenschnittstelle (CLI), das SDK oder, CloudFormation um die Anzahl der Broker in Ihrem bereitgestellten Cluster zu reduzieren. MSK wählt die Broker aus, auf denen sich keine Partitionen befinden (mit Ausnahme von Canary-Themen), und verhindert, dass Anwendungen Daten an diese Broker senden, und entfernt diese Broker gleichzeitig sicher aus dem Cluster.

Sie sollten einen Broker pro Availability Zone entfernen, wenn Sie den Speicher- und Rechenaufwand eines Clusters reduzieren möchten. Beispielsweise können Sie zwei Broker aus einem Cluster mit zwei Availability Zones oder drei Broker aus einem Cluster mit drei Availability Zones in einem einzigen Broker-Entfernungsvorgang entfernen.

Informationen zum Neuverteilen von Partitionen nach dem Entfernen von Brokern aus einem Cluster finden Sie unterNeuzuweisung von Partitionen.

Sie können Broker unabhängig von der Instanzgröße aus allen M5- und M7g-basierten, von MSK bereitgestellten Clustern entfernen.

Das Entfernen von Brokern wird in den Kafka-Versionen 2.8.1 und höher unterstützt, auch in Clustern im Kraft-Modus.

Bereiten Sie sich darauf vor, Broker zu entfernen, indem Sie alle Partitionen entfernen

Bevor Sie mit dem Entfernen des Brokers beginnen, verschieben Sie zunächst alle Partitionen, mit Ausnahme der Partitionen für Themen __amazon_msk_canary und __amazon_msk_canary_state von den Brokern, die Sie entfernen möchten. Dies sind interne Themen, die Amazon MSK für Cluster-Integritäts- und Diagnose-Metriken erstellt.

Sie können die Admin-APIs von Kafka oder Cruise Control verwenden, um Partitionen auf andere Broker zu verschieben, die Sie im Cluster behalten möchten. Siehe Partitionen neu zuweisen.

Beispielprozess zum Entfernen von Partitionen

Dieser Abschnitt ist ein Beispiel dafür, wie Sie Partitionen aus dem Broker entfernen, den Sie entfernen möchten. Angenommen, Sie haben einen Cluster mit 6 Brokern, 2 Brokern in jeder AZ, und er hat vier Themen:

  • __amazon_msk_canary

  • __consumer_offsets

  • __amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-c657f7e4ff32-2

  • msk-brk-rmv

  1. Erstellen Sie einen Client-Computer, wie unter Einen Client-Computer erstellen beschrieben.

  2. Führen Sie nach der Konfiguration des Client-Computers den folgenden Befehl aus, um alle verfügbaren Themen in Ihrem Cluster aufzulisten.

    ./bin/kafka-topics.sh --bootstrap-server “CLUSTER_BOOTSTRAP_STRING” --list

    In diesem Beispiel sehen wir die vier Themennamen __amazon_msk_canary__consumer_offsets,__amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-c657f7e4ff32-2, undmsk-brk-rmv.

  3. Erstellen Sie eine JSON-Datei mit topics.json dem Namen auf dem Client-Computer und fügen Sie alle Namen der Benutzerthemen hinzu, wie im folgenden Codebeispiel dargestellt. Sie müssen den __amazon_msk_canary Themennamen nicht angeben, da es sich um ein dienstverwaltetes Thema handelt, das bei Bedarf automatisch verschoben wird.

    { "topics": [ {"topic": "msk-brk-rmv"}, {"topic": "__consumer_offsets"}, {"topic": "__amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-c657f7e4ff32-2"} ], "version":1 }
  4. Führen Sie den folgenden Befehl aus, um einen Vorschlag zum Verschieben von Partitionen auf nur 3 von 6 Brokern im Cluster zu generieren.

    ./bin/kafka-reassign-partitions.sh --bootstrap-server “CLUSTER_BOOTSTRAP_STRING” --topics-to-move-json-file topics.json --broker-list 1,2,3 --generate
  5. Erstellen Sie eine Datei mit dem Namen reassignment-file.json und kopieren proposed partition reassignment configuration Sie den Befehl, den Sie von oben erhalten haben.

  6. Führen Sie den folgenden Befehl aus, um Partitionen zu verschieben, die Sie in der angegeben habenreassignment-file.json.

    ./bin/kafka-reassign-partitions.sh --bootstrap-server “CLUSTER_BOOTSTRAP_STRING” --reassignment-json-file reassignment-file.json --execute

    Die Ausgabe sieht folgendermaßen oder ähnlich aus:

    Successfully started partition reassignments for morpheus-test-topic-1-0,test-topic-1-0
  7. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob alle Partitionen verschoben wurden.

    ./bin/kafka-reassign-partitions.sh --bootstrap-server “CLUSTER_BOOTSTRAP_STRING” --reassignment-json-file reassignment-file.json --verify

    Die Ausgabe sieht folgendermaßen oder ähnlich aus. Überwachen Sie den Status, bis alle Partitionen in den von Ihnen angeforderten Themen erfolgreich neu zugewiesen wurden:

    Status of partition reassignment: Reassignment of partition msk-brk-rmv-0 is completed. Reassignment of partition msk-brk-rmv-1 is completed. Reassignment of partition __consumer_offsets-0 is completed. Reassignment of partition __consumer_offsets-1 is completed.
  8. Wenn der Status angibt, dass die Neuzuweisung der Partitionen für jede Partition abgeschlossen ist, überwachen Sie die UserPartitionExists Metriken 5 Minuten lang, um sicherzustellen, dass sie 0 für die Broker angezeigt werden, von denen Sie die Partitionen verschoben haben. Nachdem Sie dies bestätigt haben, können Sie mit dem Entfernen des Brokers aus dem Cluster fortfahren.

Entfernen Sie einen Broker mit dem AWS Management Console

Um Broker zu entfernen, verwenden Sie das AWS Management Console
  1. Öffnen Sie die Amazon-MSK-Konsole unter https://console.aws.amazon.com/msk/.

  2. Wählen Sie den MSK-Cluster aus, der die Broker enthält, die Sie entfernen möchten.

  3. Wählen Sie auf der Seite mit den Cluster-Details die Schaltfläche „Aktionen“ und wählen Sie die Option „Anzahl der Broker bearbeiten“.

  4. Geben Sie die Anzahl der Broker ein, die der Cluster pro Availability Zone haben soll. Die Konsole fasst die Anzahl der Broker in den Availability Zones zusammen, die entfernt werden. Stellen Sie sicher, dass dies das ist, was Sie wollen.

  5. Wählen Sie Änderungen speichern aus.

Um zu verhindern, dass Broker versehentlich entfernt werden, werden Sie von der Konsole aufgefordert, zu bestätigen, dass Sie Broker löschen möchten.

Entfernen Sie einen Broker mit der AWS CLI

Führen Sie den folgenden Befehl aus und ClusterArn ersetzen Sie ihn durch den Amazon-Ressourcennamen (ARN), den Sie bei der Erstellung Ihres Clusters erhalten haben. Wenn Ihnen der ARN für Ihren Cluster nicht vorliegt, finden Sie ihn, indem Sie alle Cluster auflisten. Weitere Informationen finden Sie unter Amazon MSK-Cluster https://docs.aws.amazon.com/msk/latest/developerguide/msk-list-clusters.html auflisten. Current-Cluster-VersionDurch die aktuelle Version des Clusters ersetzen.

Wichtig

Cluster-Versionen sind keine einfachen Ganzzahlen. Um die aktuelle Version des Clusters zu finden, verwenden Sie die DescribeCluster Operation oder den Befehl describe-cluster AWS CLI . KTVPDKIKX0DER ist ein Beispiel für eine Version.

Der Target-Number-of-Brokers Parameter stellt die Gesamtzahl der Broker-Knoten dar, die der Cluster haben soll, wenn dieser Vorgang erfolgreich abgeschlossen wird. Der Wert, für den Sie angeben, Target-Number-of-Brokers muss eine ganze Zahl sein, die kleiner ist als die aktuelle Anzahl von Brokern im Cluster. Sie muss auch ein Vielfaches der Anzahl der Availability Zones sein.

aws kafka update-broker-count --cluster-arn ClusterArn --current-version Current-Cluster-Version --target-number-of-broker-nodes Target-Number-of-Brokers

Die Ausgabe dieses update-broker-count-Vorgangs sieht wie das folgende JSON aus.

{ "ClusterOperationInfo": { "ClientRequestId": "c0b7af47-8591-45b5-9c0c-909a1a2c99ea", "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2", "CreationTime": "2019-09-25T23:48:04.794Z", "OperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef", "OperationState": "UPDATE_COMPLETE", "OperationType": "DECREASE_BROKER_COUNT", "SourceClusterInfo": { "NumberOfBrokerNodes": 12 }, "TargetClusterInfo": { "NumberOfBrokerNodes": 9 } } }

In dieser Ausgabe hat OperationType den Wert „DECREASE_BROKER_COUNT“. Wenn OperationState den Wert „UPDATE_IN_PROGRESS“ aufweist, warten Sie eine Weile, bevor Sie den describe-cluster-operation-Befehl erneut ausführen.

Entfernen Sie einen Broker mit dem AWS API

Informationen zum Entfernen von Brokern in einem Cluster mithilfe der API finden Sie UpdateBrokerCount in der Amazon Managed Streaming for Apache Kafka API-Referenz.