Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan Cruise LinkedIn Control untuk Apache Kafka dengan Amazon MSK
Anda dapat menggunakan LinkedIn Cruise Control untuk menyeimbangkan kembali MSK cluster Amazon Anda, mendeteksi dan memperbaiki anomali, serta memantau keadaan dan kesehatan cluster.
Untuk mengunduh dan membangun Cruise Control
Buat EC2 instans Amazon di Amazon VPC yang sama dengan MSK cluster Amazon.
Instal Prometheus di instans EC2 Amazon yang Anda buat di langkah sebelumnya. Perhatikan IP pribadi dan port. Nomor port default adalah 9090. Untuk informasi tentang cara mengonfigurasi Prometheus untuk menggabungkan metrik untuk klaster Anda, lihat. Memantau klaster MSK Provisioned dengan Prometheus
-
Unduh Cruise Control
di EC2 instans Amazon. (Atau, Anda dapat menggunakan EC2 instans Amazon terpisah untuk Cruise Control jika Anda mau.) Untuk cluster yang memiliki Apache Kafka versi 2.4.*, gunakan rilis Cruise Control 2.4.* terbaru. Jika cluster Anda memiliki versi Apache Kafka yang lebih tua dari 2.4.*, gunakan rilis Cruise Control 2.0.* terbaru. -
Dekompresi file Cruise Control, lalu buka folder yang didekompresi.
-
Jalankan perintah berikut untuk menginstal git.
sudo yum -y install git
-
Jalankan perintah berikut untuk menginisialisasi repo lokal. Ganti
Your-Cruise-Control-Folder
dengan nama folder Anda saat ini (folder yang Anda peroleh saat Anda mendekompresi unduhan Cruise Control).git init && git add . && git commit -m "Init local repo." && git tag -a
Your-Cruise-Control-Folder
-m "Init local version." -
Jalankan perintah berikut untuk membangun kode sumber.
./gradlew jar copyDependantLibs
Untuk mengkonfigurasi dan menjalankan Cruise Control
-
Buat pembaruan berikut ke
config/cruisecontrol.properties
file. Ganti contoh server bootstrap dan string bootstrap-brokers dengan nilai untuk cluster Anda. Untuk mendapatkan string ini untuk cluster Anda, Anda dapat melihat detail cluster di konsol. Atau, Anda dapat menggunakan GetBootstrapBrokersdan DescribeClusterAPIoperasi atau CLI setara mereka.# If using TLS encryption, use 9094; use 9092 if using plaintext bootstrap.servers=b-1.test-cluster.2skv42.c1.kafka.us-east-1.amazonaws.com:9094,b-2.test-cluster.2skv42.c1.kafka.us-east-1.amazonaws.com:9094,b-3.test-cluster.2skv42.c1.kafka.us-east-1.amazonaws.com:9094 # SSL properties, needed if cluster is using TLS encryption security.protocol=SSL ssl.truststore.location=/home/ec2-user/kafka.client.truststore.jks # Use the Prometheus Metric Sampler metric.sampler.class=com.linkedin.kafka.cruisecontrol.monitor.sampling.prometheus.PrometheusMetricSampler # Prometheus Metric Sampler specific configuration prometheus.server.endpoint=1.2.3.4:9090 # Replace with your Prometheus IP and port # Change the capacity config file and specify its path; details below capacity.config.file=config/capacityCores.json
Untuk broker ekspres, kami menyarankan Anda untuk tidak menggunakan tujuan apa pun yang dikonfigurasi dalam konfigurasi penganalisis
Anda. DiskCapacityGoal
-
Edit
config/capacityCores.json
file untuk menentukan ukuran disk dan CPU inti dan batas masuk/keluar jaringan yang tepat. Untuk broker Express, entriDISK
kapasitas hanya diperlukan untuk menyiapkan Cruise Control. Karena MSK mengelola semua penyimpanan untuk broker Express, Anda harus menetapkan nilai ini ke angka yang sangat tinggi, sepertiInteger.MAX_VALUE (2147483647)
. Untuk pialang Standar, Anda dapat menggunakan DescribeClusterAPIoperasi (atau deskripsi-clusterCLI) untuk mendapatkan ukuran disk. Untuk CPU core dan batas masuk/keluar jaringan, lihat Jenis EC2 Instans Amazon . -
Anda dapat menginstal UI Cruise Control secara opsional. Untuk mengunduhnya, buka Pengaturan Cruise Control Frontend
. -
Jalankan perintah berikut untuk memulai Cruise Control. Pertimbangkan untuk menggunakan alat seperti
screen
atautmux
untuk menjaga sesi yang berjalan lama tetap terbuka.<path-to-your-kafka-installation>
/bin/kafka-cruise-control-start.sh config/cruisecontrol.properties 9091 Gunakan Cruise Control APIs atau UI untuk memastikan bahwa Cruise Control memiliki data pemuatan cluster dan membuat saran penyeimbangan kembali. Mungkin perlu beberapa menit untuk mendapatkan jendela metrik yang valid.
penting
Hanya Cruise Control versi 2.5.60 dan di atasnya yang kompatibel dengan broker Express karena broker Express tidak mengekspos titik akhir Zookeeper.
Gunakan template penerapan otomatis Cruise Control untuk Amazon MSK
Anda juga dapat menggunakan CloudFormation template
Fitur kunci:
Penyediaan otomatis EC2 instans Amazon dengan Cruise Control dan Prometheus yang telah dikonfigurasi sebelumnya.
Support untuk klaster yang MSK disediakan Amazon.
Otentikasi fleksibel dengan PlainText dan IAM.
Tidak ada ketergantungan Zookeeper untuk Cruise Control.
Sesuaikan target Prometheus, pengaturan kapasitas Cruise Control, dan konfigurasi lainnya dengan menyediakan file konfigurasi Anda sendiri yang disimpan dalam bucket Amazon S3.
Pedoman penyeimbangan kembali partisi
Pedoman untuk penugasan kembali partisi Kafka
Penugasan kembali partisi di Kafka dapat menjadi sumber daya intensif, karena melibatkan transfer data yang signifikan di seluruh broker, berpotensi menyebabkan kemacetan jaringan dan mempengaruhi operasi klien. Praktik terbaik berikut membantu Anda mengelola penugasan kembali partisi secara efektif dengan menyetel kecepatan throttle, memanfaatkan kontrol konkurensi, dan memahami jenis penugasan kembali untuk meminimalkan gangguan pada operasi klaster.
Mengelola konkurensi di Cruise Control
Cruise Control menyediakan parameter penyesuaian otomatis untuk mengontrol konkurensi gerakan partisi dan kepemimpinan. Parameter berikut membantu mempertahankan beban yang dapat diterima selama penugasan kembali:
Gerakan partisi bersamaan maksimum: Tentukan
num.concurrent.partition.movements.per.broker
untuk membatasi gerakan partisi antar-broker bersamaan, hindari pemanfaatan jaringan yang berlebihan.contoh Contoh
num.concurrent.partition.movements.per.broker = 5
Pengaturan ini membatasi setiap broker untuk memindahkan tidak lebih dari 10 partisi pada waktu tertentu, menyeimbangkan beban di seluruh broker.
Gunakan throttling untuk mengontrol bandwidth
Parameter Throttle: Saat melakukan penugasan kembali partisi dengan
kafka-reassign-partitions.sh
, gunakan--throttle parameter
untuk mengatur kecepatan transfer maksimum (dalam byte per detik) untuk pergerakan data antar broker.contoh Contoh
--throttle 5000000
Ini menetapkan bandwidth maksimum 5 MB/s.
-
Pengaturan Balance Throttle: Memilih laju throttle yang sesuai sangat penting:
Jika disetel terlalu rendah, penugasan kembali mungkin memakan waktu lebih lama secara signifikan.
Jika disetel terlalu tinggi, klien mungkin mengalami peningkatan latensi.
Mulailah dengan kecepatan throttle konservatif dan sesuaikan berdasarkan pemantauan kinerja cluster. Uji throttle pilihan Anda sebelum menerapkan ke lingkungan produksi untuk menemukan keseimbangan optimal.
Uji dan validasi di lingkungan pementasan
Sebelum menerapkan penugasan ulang dalam produksi, lakukan uji beban di lingkungan pementasan dengan konfigurasi serupa. Ini memungkinkan Anda untuk menyempurnakan parameter dan meminimalkan dampak tak terduga dalam produksi langsung.