2015-06-04 30 views
6

Bir konuya/bölüme mesaj yazan bir yapımcım var. Siparişi korumak için, tek bir bölümle gitmek istiyorum ve 12 tüketicinin bu tek bölümdeki tüm mesajları okumasını istiyorum (hiçbir tüketici grubu, tüm mesajlar tüm tüketicilere gitmeli). Bu ulaşılabilir mi? Her bir bölüm için sadece bir tüketicinin okuyabileceği bazı forumları okudum.Kafka bir bölüm için çok sayıda tüketici

cevap

13

Sen soruyorsun tam olarak ne elde etmek SimpleConsumer kullanabilir - hayır tüketici grupları, tüm tüketiciler tek bir bölüm okuyabilirsiniz. Ancak bu yaklaşım, ofset depolama ve komisyoncu arızasıyla başa çıkmak zorunda olduğunuz anlamına gelir.

Başka bir seçenek (sadece her tüketiciye rastgele UUID atayabilirsiniz) farklı tüketici gruplarıyla üst düzey tüketiciye kullanmaktır. Bu şekilde, tüm tüketicilerle bir konu/bölüm tüketebilecek ve ofsetleri işleyebilecek ve komisyoncu kesintisini kaldırabileceksiniz.

kuralı "sadece konu/bölüm tüketebilir tek tüketici" sadece tüketici grupları için geçerlidir

, mesela IN GROUP yalnızca bir kişi/bölüm aynı anda tüketebilir. Eğer aynı bölüme birden tüketicileri varsa

+1

Her tüketici için benzersiz tüketici groupid'i kullanırsam, her müşterinin tüm mesajlarını tek bölümden okuyacağım. yani kod gibi bir şey .. props.put ("group.id", KafkaProperties.groupId); – skumar

+2

Evet, eğer tek bir bölümlü konunuzda 1000 mesaj varsa, farklı tüketici gruplarına sahip tüm tüketiciler her biri 1000 mesaj okuyacaktır. – serejja

+0

Yaklaşım1 (ofset ve broker failer) ve yaklaşım 2 için (her bir tüketiciye randevu atama) birkaç örnek verebilir misiniz? – skumar

0

, bu sıralamayı sürdürmenin başlangıç ​​şartı yener. Bununla birlikte, depolama siparişi vermiş olsaydınız, ancak tüketim sipariş edilmeyecekti. Bununla gerçekten iyi olduğundan emin ol. Evet ise, her bir tüketiciye farklı bir tüketici grubu olarak davranabilirsiniz.

İlgili konular