2017-11-21 8 views
0

Uusing Spring 카프카 org.springframework.kafka.listener.ConcurrentMessageListenerContainer은 토픽의 파티션 수와 ContainerProperties를 기반으로 다중 리스너를 만듭니다. 그리고 javadoc은 "같은 파티션 내에서 메시지가 순차적으로 처리됩니다"라고 말합니다. 따라서 단 하나의 파티션이 있고 동시성이 10으로 설정되면 어떤 일이 발생합니까? 동시성은 없습니다. 또는 메시지가 10 명의 청취자에게 배포되지만 순서가 바뀌지는 않습니까?1 파티션을 사용하여 카프카 토픽에 대한 동시 메시지 수신기를 만드는 방법

+0

더 많은 조사가 끝나면 샘플 그룹 ID가있는 10 명의 소비자가 있고 항목에 1 개의 파티션이 있는지, 10 명의 소비자 중 1 명만 메시지를 받고 나머지는 유휴 상태 일 것이라고 추측합니다. 내 이해가 맞습니까? – user3366706

+1

맞습니다. 하나의 소비자 인스턴스 만 하나의 파티션에서 소비 할 수 있습니다. 병행 성은 파티션의 수에 의해 제한됩니다. –

답변

2

아니요, 대상 수신기는 단 하나입니다. 하나의 파티션 - 소비자 그룹 당 하나의 프로세스. 그것은 아파치 카프카 성격입니다. 그것은 봄 카프카 문제가 아닙니다.

요즘은 TaskExecutor을 사용하여 청취자 방식의 해당 메시지를 병렬 처리 할 수 ​​있습니다. 그러나 그것은 이미 귀하의 응용 프로그램입니다 - Framework는 문제에 관해 당신을 위해 아무 것도하지 않습니다. 타겟 카프카 시스템의 특성상 그렇습니다.