프로듀서가 데이터를 보냄 -> 파티셔너가 이를 처리
- 어떤 파티션에 데이터를 저장할 지 결정
파티셔너 따로 설정하지 않는다면,
UniformStickyPartioner
로 설정 (이 방식은 아래와 같이 동작)- 메시지 키가 있는 데이터에 대해서는 해쉬 값을 생성하여 파티션을 결정
- 동일한 메시지 키(해쉬 값)은 동일한 파티션에 들어감
- 메시지 키가 없는 레코드는 Round-Robin
- 다만 전통적인 RR 과 조금 다르다. Batch 단위로 동작한다(?)
- 메시지 키가 있는 데이터에 대해서는 해쉬 값을 생성하여 파티션을 결정
사용자 지정 파티셔너도 사용 가능
- CustomPartitional 인터페이스를 제공한다고 함
예시 #
파티셔너, 파티션 결정이 중요한 이유는 아래와 같은 예시로 사용 가능
- 파티션 10개 중 8개 -> VIP를 위해 배정 : VIP에 대해서 조금 더 빠른 데이터 처리 기대