2017-10-21 59 views
0

有人知道如何在Python中使用相同的組ID來運行多個消費者嗎? 我試過以下Python中具有相同組ID的多個消費者

a = Consumer({'bootstrap.servers': 'localhost:9092', 'group.id': 'dd1', 
       'default.topic.config': {'auto.offset.reset': 'smallest'}}) 
b = Consumer({'bootstrap.servers': 'localhost:9092', 'group.id': 'dd1', 
       'default.topic.config': {'auto.offset.reset': 'smallest'}}) 
c = Consumer({'bootstrap.servers': 'localhost:9092', 'group.id': 'dd1', 
       'default.topic.config': {'auto.offset.reset': 'smallest'}}) 
a.subscribe([topic_to_read]) 
b.subscribe([topic_to_read]) 
c.subscribe([topic_to_read]) 
running = True 
while running: 
    msg1 = a.poll(timeout=timeout) 
    msg2 = b.poll(timeout=timeout) 
    msg3 = c.poll(timeout=timeout) 

但是,這是行不通的。 所以我試過使用多處理庫,但我無法使它工作。

+0

你爲什麼說它不工作。你期望什麼把他們放在同一個團隊中的行爲? 您在topic_to_read中有多少個分區? –

回答

0

組ID是每個消費者的唯一ID。如果您正在爲多個消費者訂閱同一主題,則必須具有不同的組ID,否則只有其中一個消費者會收到這些消息。

0

檢查您擁有該主題的分區數。組ID消費者的數量不應超過組消費的主題的分區數量。否則額外的消費者將保持閒置。 如果您正在爲每個消費者分配不同的CLIENID/CONSUMERID,請檢查。

相關問題