Einen Broker aus einem MSK Amazon-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 MSK Amazon-Cluster entfernen

Verwenden Sie diesen MSK Amazon-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. Durch die Möglichkeit, Broker hinzuzufügen und zu entfernen, 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) oderSDK, AWS CloudFormation um die Anzahl der Broker in Ihrem bereitgestellten Cluster zu reduzieren. MSKwä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 MSK bereitgestellten M5- und M7g-basierten 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 Modusclustern. KRaft

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 für Cluster-Integritäts- und Diagnosemetriken MSK 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 hinzu, wie im folgenden Codebeispiel. 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 MSK Amazon-Konsole unter https://console.aws.amazon.com/msk/.

  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.

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 dem 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 Sie den ARN für Ihren Cluster nicht haben, können Sie ihn finden, indem Sie alle Cluster auflisten. Weitere Informationen finden Sie unter MSKAmazon-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.

Das Tool Target-Number-of-Brokers Der Parameter stellt die Gesamtzahl der Brokerknoten dar, über die der Cluster verfügen soll, wenn dieser Vorgang erfolgreich abgeschlossen wird. Der Wert, den Sie angeben für 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 dieser update-broker-count Operation sieht wie folgt ausJSON.

{ "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 von finden Sie UpdateBrokerCountin der APIReferenz Amazon Managed Streaming for Apache Kafka. API