Bunları sırayla alalım :)
1 - Bir üretici bir mesaj ürettiğinde - Mesajı göndermek istediği konuyu belirleyecektir, doğru mu? Bölümleri önemsiyor mu?
Varsayılan olarak, üretici bölümlemeyi önemsemez. Daha iyi bir kontrole sahip olmak için özelleştirilmiş bir bölümleyici kullanma seçeneğiniz vardır, ancak tamamen isteğe bağlıdır.
2 - Bir abone çalışırken - Aynı kimliğin tüketici kümesinin veya bu tüketici grubunun ilgilendiği birkaç konunun parçası olabilmesi için grup kimliğini belirtir mi?
Evet, tüketiciler yükü paylaşmak için bir tüketici grubuna katılır (ya da yalnızlarsa yaratır). Aynı gruptaki hiçbir tüketici aynı mesajı alamayacak.
3 - Her tüketici grubunun aracıda karşılık gelen bir bölümü var mı veya her bir tüketicinin bir bölümü var mı?
Ne. Bir tüketici grubundaki tüm tüketicilere iki koşul altında bir dizi bölüm atanır: aynı gruptaki hiçbir iki tüketicinin ortak bir bölümü yoktur - ve bir bütün olarak tüketici grubuna mevcut her bölüme atanır.
4 - Bölmeler aracı tarafından yaratıldı, bu nedenle tüketiciler için bir endişe değil mi?
Öyle değiller, ancak 3'ten mevcut bölümlerden daha fazla tüketiciye sahip olmanın tamamen işe yaramaz olduğunu görebilirsiniz, bu nedenle tüketmek için maksimum paralellik seviyeniz.
5 - Bu, her bölüm için ofseti olan bir kuyruk olduğundan, okumak istediği iletileri belirtmek tüketicinin sorumluluğunda mıdır? Durumunu kurtarması gerekiyor mu?
Evet, tüketiciler bölüm başına konu başına bir denge kaydeder. Bu tamamen Kafka tarafından halledilir, endişelenmeyin.
6 - Bir mesaj kuyruktan silindiğinde ne olur? - Örneğin: Tutma 3 saat sürdü, sonra zaman geçti, ofset her iki tarafta nasıl ele alınıyor?
Bir tüketici, aracılar üzerindeki bir bölüm için uygun olmayan bir ofset isterse (örneğin, silme nedeniyle), bir hata moduna girer ve sonuçta bu bölüm için kendisini en son veya en eski iletiye sıfırlar ( auto.offset.reset yapılandırma değeri) ve çalışmaya devam edin.