-
[Kafka] 단일 파티션에 대한 고민Software Development/Data Engineering 2024. 5. 27. 14:23
이름에서 알 수 있듯이 단일 파티션 topic은 파티션이 하나만 정의된 Kafka topic입니다.
이 옵션은 몇 가지 제한 사항이 있습니다.
1. consumer group 사이즈에 관계없이 한 번에 하나의 consumer group 멤버가 메세지를 처리할 수 있습니다.
2. group member와 메세지 처리를 나눠서 할 수 없기 때문에 최대 처리량은 단일 consumer와 동일합니다.
3. 2 이상의 consumer 그룹의 경우 1개 빼고 전부 유휴 상태로 있게됩니다.
처리량 및 확장성의 관점에서 아주 나쁜 선택입니다.
카프카의 파티셔닝 기능을 포기하는 것은 거의 필수인데, 드물게 예외케이스가 있긴 합니다.
모든 메시지가 동일한 파티션 내에 있으므로 해당 주제 내에서 메시지의 grobal (쓰기) order가 존재합니다.
단일 consumer와 함께 쓰면 메세지가 순서대로 처리되도록 할 수 있습니다.
데이터베이스(DB)의 단일 테이블에 대해 변경 스트림을 요청한다고 가정해 보겠습니다.스트림은 단일 테이블 DB의 트랜잭션 로그이며, 이는 순서가 매우 중요하기 때문에 보존되어야 합니다. 이때 순차적으로 consume이 가능하기 때문에 적합합니다.
처리량이 많지 않은 worker 작업에서도 유용합니다.
[1] https://mikemybytes.com/2021/01/11/single-partition-kafka-topics/
'Software Development > Data Engineering' 카테고리의 다른 글
[Spark] Spark JDBC와 하이브 연동 이슈들. (0) 2023.05.05 [Hive] 하이브 테이블에 Spark으로 적재 시, HQL로 읽을 때, 값이 Null로 조회되는 이슈. (0) 2023.05.02 [Data Pipelines with Apache Airflow] 3. Airflow의 스케줄링 (0) 2022.08.02 [Data Pipelines with Apache Airflow] 2. Airflow DAG의 구조 (0) 2022.08.01 [Data Pipelines with Apache Airflow] 1. Apache Airflow 살펴보기 (0) 2022.06.22