0

나는 1 주제 (데모 - 주제)와 1 파티션이있는 파이썬으로 응용 프로그램을 만들려고합니다. 이 항목에서 메시지는 임의로 푸시됩니다. 이 메시지를 사용하여 백그라운드 계산을하는 데 (시간이 걸리는) 1 명의 소비자 (consumer1) (데모 그룹)가 있습니다.파이썬 kafka 소비자와 다중 처리

아마존에서이 응용 프로그램을 사용하면 새로 생성 된 컴퓨터에서 동일한 그룹 (데모 그룹)의 다른 소비자 (소비자 2)를 읽는 방식으로 계산할 때 크기를 조정할 수 있기를 원합니다. 같은 주제 (데모 - 토픽)에 있지만 부하 분담을 시작하는 방식 (소비자 1은 약간의 부하가 걸리고 소비자 2는 나머지는 취하지 만 결코 동일한 메시지를 얻지는 못한다)

데이터의 급등 이후 중지, 두 번째 시스템이 해제되고 소비자 1이 다시로드를 모두받습니다.

도 가능 (더 많은 파티션을 손으로 추가하지 않고)입니다. 해결 방법이 있습니까 ??

은 동일한 파티션에서 동시에 섭취하면

답변

0

당신은 같은 그룹 내에서 다수의 소비자를 가질 수 없습니다 감사합니다. 동일한 그룹 내에서 동일한 그룹 내에서 두 번째 소비를 등록하면 핫 대기 모드로 작동하고 첫 번째가 중지 될 때까지 메시지를 소비하지 않습니다.

가장 좋은 해결책은 주제에 파티션을 추가하는 것입니다. 이렇게하면 트래픽 급증을 볼 때 소비자를 추가하고 트래픽이 느려지면 제거 할 수 있습니다. Kafka는 모든로드 밸런싱을 수행합니다.

0

일 수 있지만 그렇게해서는 안됩니다.

카프카의 기본 병렬 처리 단위는 파티션입니다. 소비자 그룹에서 각 소비자는 하나 이상의 파티션에서 읽고 소비자는 파티션을 공유하지 않습니다. 파티션을 공유하려면 ZooKeeper와 같은 도구를 사용하여 파티션에 대한 액세스를 잠그고 각 사용자의 위치를 ​​추적해야합니다.

설명하는 유스 케이스는 SQS 및 자동 크기 조절 그룹에서 더 잘 작동합니다.