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 den von Amazon Managed Streaming for Apache Kafka (MSK) bereitgestellten Clustern entfernen möchten. Sie können die Speicher- und Rechenkapazität Ihres Clusters reduzieren, indem Sie Gruppen von Brokern entfernen, ohne dass dies Auswirkungen auf die Verfügbarkeit, das Risiko der Datenbeständigkeit oder eine Unterbrechung Ihrer Datenstreaming-Anwendungen hat.

Sie können Ihrem Cluster weitere Broker hinzufügen, um den Anstieg des Datenverkehrs zu bewältigen, und Broker entfernen, wenn der Verkehr nachlässt. Mit den 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 die Kontrolle über die vorhandene Clusterkapazität auf Broker-Ebene, um sie an Ihre Workload-Anforderungen anzupassen und eine Migration zu einem anderen Cluster zu vermeiden.

Verwenden Sie die AWS Konsole, die Befehlszeilenschnittstelle (CLI), das SDK oder, AWS CloudFormation um die Anzahl der Broker Ihres bereitgestellten Clusters zu reduzieren. MSK wählt die Broker aus, auf denen sich keine Partitionen befinden (außer bei kanarischen Themen), und verhindert, dass Anwendungen Daten an diese Broker senden. Gleichzeitig werden diese Broker sicher aus dem Cluster entfernt.

Sie sollten einen Broker pro Availability Zone entfernen, wenn Sie den Speicher- und Rechenaufwand eines Clusters reduzieren möchten. Sie können beispielsweise 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 dazu, wie Sie Partitionen neu verteilen können, nachdem Sie Broker aus einem Cluster entfernt haben, finden Sie unterNeuzuweisung von Partitionen.

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

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 Broker-Entfernungsprozess beginnen, verschieben Sie zunächst alle Partitionen mit Ausnahme der Partitionen für Themen __amazon_msk_canary und __amazon_msk_canary_state für die Broker, die Sie entfernen möchten. Dies sind interne Themen, die Amazon MSK für Cluster-Integritäts- und Diagnosemetriken erstellt.

Sie können Kafka-Admin-APIs 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 können, 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 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 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, die topics.json auf dem Client-Computer aufgerufen wird, und fügen Sie alle Benutzerthemennamen wie im folgenden Codebeispiel hinzu. Sie müssen den __amazon_msk_canary Themennamen nicht angeben, da es sich um ein vom Service verwaltetes 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 vom obigen Befehl 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 anzeigt, dass die Neuzuweisung der Partitionen für jede Partition abgeschlossen ist, überwachen Sie die UserPartitionExists Metriken fünf 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 damit fortfahren, den Broker aus dem Cluster zu entfernen.

Entfernen Sie einen Broker mit der AWS Management Console

Um Broker mit der AWS Management Console zu entfernen
  1. Öffnen Sie die Amazon-MSK-Konsole unter https://console.aws.amazon.com/msks/.

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

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

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

  5. Wählen Sie Änderungen speichern aus.

Um ein versehentliches Entfernen von Brokern zu verhindern, werden Sie in 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 auflisten. Current-Cluster-VersionDurch die aktuelle Version des Clusters ersetzen.

Wichtig

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

Der Parameter Target-Number-of-Brokers stellt die Gesamtzahl der Broker-Knoten für den Cluster dar, wenn dieser Vorgang erfolgreich abgeschlossen wird. Der Wert, den Sie für Target-Number-of-Brokers angeben, 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 der API AWS

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