Hapus broker dari cluster MSK Amazon - Amazon Managed Streaming untuk Apache Kafka

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Hapus broker dari cluster MSK Amazon

Gunakan operasi MSK Amazon ini saat Anda ingin menghapus broker dari kluster yang disediakan Amazon Managed Streaming for Apache Kafka (MSK). Anda dapat mengurangi kapasitas penyimpanan dan komputasi klaster Anda dengan menghapus kumpulan broker, tanpa dampak ketersediaan, risiko daya tahan data, atau gangguan pada aplikasi streaming data Anda.

Anda dapat menambahkan lebih banyak broker ke cluster Anda untuk menangani peningkatan lalu lintas, dan menghapus broker ketika lalu lintas mereda. Dengan kemampuan penambahan dan penghapusan broker, Anda dapat memanfaatkan kapasitas cluster Anda dengan sebaik-baiknya dan mengoptimalkan biaya infrastruktur MSK Anda. Penghapusan broker memberi Anda kontrol tingkat broker atas kapasitas klaster yang ada agar sesuai dengan kebutuhan beban kerja Anda dan menghindari migrasi ke klaster lain.

Gunakan AWS Konsol, Antarmuka Baris Perintah (CLI), SDK, atau AWS CloudFormation untuk mengurangi jumlah broker dari klaster yang disediakan. MSK memilih broker yang tidak memiliki partisi pada mereka (kecuali untuk topik kenari) dan mencegah aplikasi menghasilkan data ke broker tersebut, sambil dengan aman menghapus broker tersebut dari cluster.

Anda harus menghapus satu broker per Availability Zone, jika Anda ingin mengurangi penyimpanan dan komputasi cluster. Misalnya, Anda dapat menghapus dua broker dari dua klaster Availability Zone, atau tiga broker dari tiga klaster Availability Zone dalam satu operasi penghapusan broker.

Untuk informasi tentang cara menyeimbangkan kembali partisi setelah Anda menghapus broker dari cluster, lihat. Tetapkan kembali partisi

Anda dapat menghapus broker dari semua kluster yang disediakan MSK berbasis M5 dan M7g, terlepas dari ukuran instans.

Penghapusan broker didukung pada Kafka versi 2.8.1 dan di atasnya, termasuk pada kluster mode Kraft.

Bersiaplah untuk menghapus broker dengan menghapus semua partisi

Sebelum Anda memulai proses penghapusan broker, pertama-tama pindahkan semua partisi, kecuali yang untuk topik __amazon_msk_canary dan __amazon_msk_canary_state dari broker yang Anda rencanakan untuk dihapus. Ini adalah topik internal yang dibuat Amazon MSK untuk kesehatan klaster dan metrik diagnostik.

Anda dapat menggunakan Kafka admin API atau Cruise Control untuk memindahkan partisi ke broker lain yang ingin Anda pertahankan di cluster. Lihat Menetapkan ulang partisi.

Contoh proses untuk menghapus partisi

Bagian ini adalah contoh cara menghapus partisi dari broker yang ingin Anda hapus. Asumsikan Anda memiliki cluster dengan 6 broker, 2 broker di setiap AZ, dan memiliki empat topik:

  • __amazon_msk_canary

  • __consumer_offsets

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

  • msk-brk-rmv

  1. Buat mesin klien seperti yang dijelaskan dalam Buat mesin klien.

  2. Setelah mengkonfigurasi mesin klien, jalankan perintah berikut untuk mencantumkan semua topik yang tersedia di cluster Anda.

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

    Dalam contoh ini, kita melihat empat nama topik,__amazon_msk_canary,__consumer_offsets,__amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-c657f7e4ff32-2, danmsk-brk-rmv.

  3. Buat file json yang dipanggil topics.json pada mesin klien dan tambahkan semua nama topik pengguna seperti pada contoh kode berikut. Anda tidak perlu menyertakan nama __amazon_msk_canary topik karena ini adalah topik yang dikelola layanan yang akan dipindahkan secara otomatis bila diperlukan.

    { "topics": [ {"topic": "msk-brk-rmv"}, {"topic": "__consumer_offsets"}, {"topic": "__amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-c657f7e4ff32-2"} ], "version":1 }
  4. Jalankan perintah berikut untuk menghasilkan proposal untuk memindahkan partisi ke hanya 3 broker dari 6 broker di cluster.

    ./bin/kafka-reassign-partitions.sh --bootstrap-server “CLUSTER_BOOTSTRAP_STRING” --topics-to-move-json-file topics.json --broker-list 1,2,3 --generate
  5. Buat file bernama reassignment-file.json dan salin yang proposed partition reassignment configuration Anda dapatkan dari perintah di atas.

  6. Jalankan perintah berikut untuk memindahkan partisi yang Anda tentukan di. reassignment-file.json

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

    Output akan terlihat serupa dengan yang berikut ini:

    Successfully started partition reassignments for morpheus-test-topic-1-0,test-topic-1-0
  7. Jalankan perintah berikut untuk memverifikasi semua partisi telah dipindahkan.

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

    Output-nya akan terlihat serupa dengan yang berikut ini. Pantau status hingga semua partisi dalam topik yang Anda minta berhasil ditugaskan kembali:

    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. Ketika status menunjukkan bahwa penugasan kembali partisi untuk setiap partisi selesai, pantau UserPartitionExists metrik selama 5 menit untuk memastikannya ditampilkan 0 untuk broker tempat Anda memindahkan partisi. Setelah mengonfirmasi ini, Anda dapat melanjutkan untuk menghapus broker dari cluster.

Hapus broker dengan AWS Management Console

Untuk menghapus broker dengan Konsol AWS Manajemen
  1. Buka konsol MSK Amazon di https://console.aws.amazon.com/msk/.

  2. Pilih klaster MSK yang berisi broker yang ingin Anda hapus.

  3. Pada halaman detail cluster, pilih tombol Tindakan dan pilih opsi Edit jumlah broker.

  4. Masukkan jumlah broker yang Anda inginkan untuk dimiliki cluster per Availability Zone. Konsol merangkum jumlah broker di seluruh zona ketersediaan yang akan dihapus. Pastikan ini apa yang Anda inginkan.

  5. Pilih Simpan perubahan.

Untuk mencegah penghapusan broker yang tidak disengaja, konsol meminta Anda untuk mengonfirmasi bahwa Anda ingin menghapus broker.

Hapus broker dengan AWS CLI

Jalankan perintah berikut, ganti ClusterArn dengan Amazon Resource Name (ARN) yang Anda peroleh saat membuat cluster Anda. Jika Anda tidak memiliki ARN untuk cluster Anda, Anda dapat menemukannya dengan mencantumkan semua cluster. Untuk informasi lebih lanjut, Daftar kluster MSK Amazon. Ganti Current-Cluster-Version dengan versi cluster saat ini.

penting

Versi cluster bukan bilangan bulat sederhana. Untuk menemukan versi cluster saat ini, gunakan DescribeClusteroperasi atau perintah AWS CLI deskripsi-cluster. Contoh versi adalahKTVPDKIKX0DER.

Parameter Target-Number-of-Brokers mewakili jumlah total node broker yang Anda inginkan untuk dimiliki cluster ketika operasi ini selesai dengan sukses. Nilai yang Anda tentukan untuk Target-Number-of-Brokers harus berupa bilangan bulat yang kurang dari jumlah broker saat ini di cluster. Itu juga harus kelipatan dari jumlah Availability Zones.

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

Output dari update-broker-count operasi ini terlihat seperti JSON berikut.

{ "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 } } }

Dalam output ini, OperationType adalahDECREASE_BROKER_COUNT. Jika OperationState memiliki nilaiUPDATE_IN_PROGRESS, tunggu sebentar, lalu jalankan describe-cluster-operation perintah lagi.

Hapus broker dengan AWS API

Untuk menghapus broker di klaster menggunakan API, lihat UpdateBrokerMenghitung di Amazon Managed Streaming for Apache Kafka API Referensi.