Mari kita bereskan :)
1 - Ketika seorang produser memproduksi pesan - Ini akan menentukan topik yang ingin dikirimi pesannya, benarkah itu? Apakah itu peduli dengan partisi?
Secara default, produsen tidak peduli tentang partisi. Anda memiliki opsi untuk menggunakan partisi yang disesuaikan untuk memiliki kontrol yang lebih baik, tetapi itu sepenuhnya opsional.
2 - Ketika pelanggan berjalan - Apakah ia menentukan id grupnya sehingga dapat menjadi bagian dari sekelompok konsumen dari topik yang sama atau beberapa topik yang diminati oleh kelompok konsumen ini?
Ya, konsumen bergabung (atau membuat jika mereka sendirian) kelompok konsumen untuk berbagi muatan. Tidak ada dua konsumen dalam kelompok yang sama yang akan menerima pesan yang sama.
3 - Apakah setiap kelompok konsumen memiliki partisi yang sesuai pada broker atau apakah masing-masing konsumen memiliki partisi?
Tidak juga. Semua konsumen dalam grup konsumen diberi sekumpulan partisi, dengan dua syarat: tidak ada dua konsumen dalam grup yang sama yang memiliki partisi yang sama - dan grup konsumen secara keseluruhan ditugaskan untuk setiap partisi yang ada.
4 - Apakah partisi dibuat oleh broker, karena itu tidak menjadi perhatian bagi konsumen?
Mereka tidak, tetapi Anda dapat melihat dari 3 bahwa sama sekali tidak berguna untuk memiliki lebih banyak konsumen daripada partisi yang ada, sehingga tingkat paralelisme maksimum Anda untuk mengkonsumsi.
5 - Karena ini adalah antrian dengan offset untuk setiap partisi, apakah merupakan tanggung jawab konsumen untuk menentukan pesan mana yang ingin dibaca? Apakah perlu menyelamatkan kondisinya?
Ya, konsumen menyimpan offset per topik per partisi. Ini sepenuhnya ditangani oleh Kafka, jangan khawatir tentang itu.
6 - Apa yang terjadi ketika pesan dihapus dari antrian? - Misalnya: Retensi selama 3 jam, lalu waktu berlalu, bagaimana offset ditangani di kedua sisi?
Jika seorang konsumen pernah meminta offset tidak tersedia untuk partisi di broker (misalnya, karena penghapusan), ia memasuki mode kesalahan, dan akhirnya mengatur ulang sendiri untuk partisi ini ke pesan terbaru atau terlama yang tersedia (tergantung pada nilai konfigurasi auto.offset.reset), dan terus bekerja.