-
[개념] Kafka 컨슈머STOVE DEVCAMP 3기/알림 서비스 2023. 3. 10. 03:17
Kafka
- 카프카는 처리량을 늘리기 위해 파티션 개수와 컨슈머 개수를 늘려서 운영할 수 있음
- 이때, 파티션과 컨슈머의 개수를 동일하게 맞추는 것이 좋은 카프카 운영법임
- 파티션의 데이터를 처리하는 방법으로 멀티 프로세스나 멀티 스레드 방식이 있음
- 데이터를 처리하는 주체는 컨슈머이므로, 컨슈머 쪽에서 해당 방식을 구현해야 함
- 컨슈머가 멀티 스레드 방식으로 데이터를 처리하는 2가지 방식이 존재함
- 1) 컨슈머 스레드 1개만 실행, 데이터 처리 담당 워크 스레드 여러 개 실행
- 2) 컨슈머에서 poll()을 호출하는 스레드를 여러 개 띄워 실행
<멀티 워커 전략>
- 메시지 브로커로부터 전달받은 레코드들을 병렬로 처리함
- Java의 ExecutorService 라이브러리를 사용해 멀티 스레드를 효율적으로 생성하고 관리할 수 있음
<멀티 컨슈머 전략>
- 하나의 파티션은 동일 컨슈머 그룹 내의 최대 1대까지 할당됨
- 하나의 컨슈머는 여러 파티션에 할당될 수 있음
- 토픽의 파티션 개수만큼 컨슈머 스레드를 운영하면, 하나의 프로세스에서 모든 파티션 커버 가능함
참고
'STOVE DEVCAMP 3기 > 알림 서비스' 카테고리의 다른 글
[알림 서비스] 테스트 코드 작성 (0) 2023.03.10 [알림 서비스] 클린 아키텍처 (0) 2023.03.10 [개념] Kafka 리밸런싱 (0) 2023.03.10 [알림 서비스] 알림 서비스 구조 개선 방향 수립 (0) 2023.03.10 [알림 서비스] 알림 서비스 구조 개선 - 대량의 알림 데이터 처리를 위한 장기적 관점의 확장 가능한 구조 설계 (0) 2023.03.10 - 카프카는 처리량을 늘리기 위해 파티션 개수와 컨슈머 개수를 늘려서 운영할 수 있음