View a markdown version of this page

Menghapus Broker dari Klaster Amazon MSK - 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.

Menghapus Broker dari Klaster Amazon MSK

Gunakan operasi Amazon MSK ini jika Anda ingin menghapus broker dari Amazon Managed Streaming untuk cluster yang disediakan Apache Kafka (MSK). Anda dapat mengurangi kapasitas penyimpanan dan komputasi cluster 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 saat 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 cluster yang ada agar sesuai dengan kebutuhan beban kerja Anda dan menghindari migrasi ke cluster lain.

Gunakan Kon AWS sol, Command Line Interface (CLI), SDK, atau CloudFormation untuk mengurangi jumlah broker dari cluster 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 Zona Ketersediaan, jika Anda ingin mengurangi penyimpanan dan komputasi cluster. Misalnya, Anda dapat menghapus dua broker dari klaster dua Availability Zone, atau tiga broker dari tiga cluster Availability Zone dalam operasi penghapusan broker tunggal.

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

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

Penghapusan broker didukung pada Kafka versi 2.8.1 dan yang lebih tinggi, termasuk pada cluster 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 metrik kesehatan dan diagnostik cluster.

Anda dapat menggunakan API admin Kafka atau Cruise Control untuk memindahkan partisi ke broker lain yang ingin Anda pertahankan di cluster. Lihat Men etapkan 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 Membuat 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 di topics.json panggil 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 yang disebut reassignment-file.json dan salin perintah yang proposed partition reassignment configuration Anda dapatkan dari atas.

  6. Jalankan perintah berikut untuk memindahkan partisi yang Anda tentukan direassignment-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 sampai semua partisi dalam topik yang Anda minta telah 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 ulang 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 Konsol Manajemen

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

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

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

  4. Masukkan jumlah broker yang Anda inginkan untuk dimiliki cluster per Zona Ketersediaan. Konsol merangkum jumlah broker di seluruh zona ketersediaan yang akan dihapus. Pastikan ini 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 selengkapnya, Daftar cluster Amazon MSK. Ganti Current-Cluster-Version dengan versi cluster saat ini.

penting

Versi cluster bukanlah bilangan bulat sederhana. Untuk menemukan versi cluster saat ini, gunakan DescribeCluster operasi atau perintah describe-cluster AWS CLI . Contoh versi adalahKTVPDKIKX0DER.

Target-Number-of-BrokersParameter mewakili jumlah total node broker yang Anda inginkan untuk dimiliki cluster ketika operasi ini berhasil diselesaikan. Nilai yang Anda tentukan Target-Number-of-Brokers harus berupa bilangan bulat yang kurang dari jumlah broker saat ini di cluster. Itu juga harus kelipatan dari jumlah Zona Ketersediaan.

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 dalam cluster menggunakan API, lihat UpdateBrokerCount di Refer ensi API Amazon Managed Streaming untuk Apache Kafka.