Rumah > Java > javaTutorial > Pengguna Kafka – Mengimbangi kumpulan pengguna yang komited

Pengguna Kafka – Mengimbangi kumpulan pengguna yang komited

DDD
Lepaskan: 2025-01-26 20:11:10
asal
926 orang telah melayarinya

Memahami Offset Kumpulan Pengguna Kafka: Panduan Komprehensif

Panduan ini meneroka offset kumpulan pengguna Kafka, yang penting untuk menjejak kemajuan penggunaan mesej. Setiap kumpulan pengguna mengekalkan offset untuk setiap partition yang digunakan, menunjukkan rekod terakhir yang diproses. Ini memastikan pengguna menyambung semula dari kedudukan yang betul selepas dimulakan semula.

Apakah itu Offset Kumpulan Pengguna?

Imbangan kumpulan pengguna ialah pengecam berangka mudah yang menjejaki kedudukan pengguna dalam partition topik Kafka. Setiap partition mempunyai offset berjujukan untuk setiap rekod. Kumpulan pengguna menggunakan offset ini untuk mengingati tempat ia berhenti. Sebagai contoh, bacaan kumpulan pengguna daripada topik dua bahagian (P1 dan P2) akan mempunyai offset berasingan untuk setiap satu, mewakili rekod bacaan terakhir dalam P1 dan P2 masing-masing.

Kafka Consumer – Committing consumer group offset

Contoh ofset semasa (kedudukan) untuk kumpulan pengguna 1

Storan Offset: Kafka lwn. Sistem Luaran

Storan ofset boleh dikendalikan dalam dua cara: dalam Kafka sendiri atau dalam sistem luaran (pangkalan data atau fail). Artikel ini memfokuskan pada mekanisme storan offset dalaman Kafka.

Storan Offset Dalaman Kafka

Kafka menyimpan offset dalam topik dalaman khas bernama __consumer_offsets. Pustaka pelanggan Kafka mengendalikan storan dan pengambilan mengimbangi, membolehkan pengguna menyambung semula dengan lancar dari kedudukan terakhir mereka yang diketahui selepas dimulakan semula.

Mengendalikan Offset Hilang

Jika tiada offset ditemui untuk pengguna, konfigurasi auto.offset.reset menentukan tingkah laku pengguna:

  • latest (lalai): Pengguna bermula dari penghujung topik, mengabaikan mesej sedia ada.
  • earliest: Pengguna bermula dari permulaan topik, memproses semua mesej yang tersedia.
  • none: Pengecualian dilemparkan jika tiada offset ditemui.

Auto-Komit lwn. Manual Komit

Autokomit memudahkan pengurusan offset dengan melakukan offset secara berkala kepada Kafka. Ini berlaku secara automatik setiap 5 saat secara lalai (dikawal oleh enable.auto.commit). Walaupun mudah, ia berisiko kehilangan data.

Auto-Komit Kelemahan

Oleh kerana autokomit beroperasi dalam urutan yang berasingan, ia tidak menjejaki pemprosesan rekod dalam penerbangan. Jika pengguna meninjau berbilang rekod dan auto-komit sebelum pemprosesan selesai, kehilangan data boleh berlaku apabila gagal.

Komit Manual: Memastikan Integriti Data

Komit manual menawarkan kawalan yang tepat. Dengan melumpuhkan autokomit (enable.auto.commit=false), anda secara eksplisit melakukan offset menggunakan commitSync() atau commitAsync() selepas berjaya memproses rekod. Ini menghalang kehilangan data.

<code class="language-java">while (true) {
  records = consumer.poll(timeout);
  // process records
  consumer.commitSync(); // or consumer.commitAsync()
}</code>
Salin selepas log masuk

bila menggunakan auto-commit

Auto-Commit sesuai jika permohonan anda:

  • mentolerir pemprosesan data sekali -sekala (operasi idempotent).
  • boleh mengendalikan kehilangan beberapa mesej.

jika tidak, komit manual disyorkan.

Synchronous vs. Asynchronous Commits

Manual Commit menawarkan pilihan segerak (commitSync()) dan asynchronous (commitAsync()). commitSync() blok sehingga komit disahkan, memastikan kegigihan tetapi mempengaruhi prestasi. commitAsync() tidak menyekat tetapi memerlukan pengendalian yang berpotensi.

Kesimpulan

offset kumpulan pengguna adalah asas untuk penggunaan Kafka yang boleh dipercayai. Walaupun auto-commit memudahkan perkara, komit manual memberikan kawalan yang lebih besar dan keselamatan data. Pilihan antara serentak dan asynchronous berkomitmen bergantung pada keperluan aplikasi anda, mengimbangi prestasi dan kebolehpercayaan. Memahami mekanisme ini adalah kunci untuk membina aplikasi Kafka yang teguh dan bersalah.

Ketahui lebih lanjut mengenai Kafka

Pertimbangkan untuk meneroka kursus mini Kafka percuma yang terdapat di Coding Harbour.

Photo Credit: @kencheungphoto

Atas ialah kandungan terperinci Pengguna Kafka – Mengimbangi kumpulan pengguna yang komited. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan