2017-12-13 11 views
0

카프카 메시지를 수신 할 때 멀티 스레딩을 구현하면 많은 메시지를 처리하는 데 도움이됩니까? 예를 들어, 대기 시간이 긴 메시지 처리를하고 싶습니다. 메시지 처리를 처리하기 위해 다중 스레드를 구현해야하는지 궁금합니다. 누구든지 어떤 아이디어가 있습니까?Scaffing Kafka 다중 스레드로 메시지 소비

답변

2

나는 당신이 달성하기를 원하는 것이지만 그렇게 생각하지 않습니다. 소비자 측면의 확장은 주제에 더 많은 파티션이 있고 동일한 소비자 그룹에 더 많은 소비자가 있으므로 도달 할 수 있습니다. 다른 소비자와 다른 파티션의 메시지를 병렬화 할 수 있습니다 (최대 병렬 처리는 파티션 수와 동일하게 수행됩니다). 그런 다음 각 소비자 내부에서 루프 내부의 poll()을 통해 파티션에서 메시지를 가져 오는 것이므로 폴링에서 메시지를 가져 와서 내부 버퍼에 넣고 스레드 풀을 사용하여 병렬로 처리 할 수 ​​있습니다. 주문이 중요하지 않은 경우) 새 메일을 받기 위해 주 스레드를 다시 poll() 상태로 둡니다. 순서와 관련하여, 순서가 잘못된 메시지를 처리하는 것은 순서가 잘못된 순서로 커밋된다는 의미이기 때문에 커밋 단계에주의해야합니다.