2017-10-21 1 views
0

파이썬에서 동일한 그룹 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) 

을 다음 시도했다하지만이 작동하지 않습니다. 그래서 다중 처리 lib를 사용하여 시도했지만 작동하도록 만들 수 없습니다.

+0

왜 작동하지 않는 걸까요? 같은 그룹에 속하게하는 행동이 무엇을 기대합니까? topic_to_read에 몇 개의 파티션이 있습니까? –

답변

0

그룹 ID는 각 소비자의 고유 ID입니다. 여러 소비자가있는 동일한 주제에 가입하는 경우 다른 그룹 ID가 있어야합니다. 그렇지 않으면 해당 소비자 중 하나만 메시지를 받게됩니다.

0

해당 항목에 대해 몇 개의 파티션이 있는지 확인하십시오. 그룹 id 내의 소비자 수는 그룹이 소비하는 주제의 파티션 수를 초과해서는 안됩니다. 그렇지 않으면 여분의 소비자는 유휴 상태로 유지됩니다. 각 소비자에 대해 다른 CLIENID/CONSUMERID를 지정하고 있는지 확인하십시오.

관련 문제