rebalancing

    Kafka Connect: Incremental Cooperative Rebalancing

    Kafka Connect: Incremental Cooperative Rebalancing

    서론Kafka Connect Worker는 컨테이너 기반(e.g Kubernetes Pod)이나 물리적/가상 머신(e.g EC2)에서 일반적으로 사용된다.이러한 환경에서는 Rolling Restart, Scale-Up/Down, Scale-In/Out 등과 같이 Worker Group의 상태 변경으로 인해 리밸런싱이 자주 발생할 수 있다. Kafka 2.3.0 이전에는 리밸런싱 시 모든 Task와 Connector가 모두 Revoke된 후 다시 Assign되는 방식(Eager Rebalance)이 적용됐다.이는 리밸런싱 과정에서 전체 작업이 중단되는 “Stop-The-World” 현상을 야기했다. 이를 해결하기 위해 **KIP-415: Incremental Cooperative Rebalancing이 제..

    Kafka: Static Membership

    Kafka: Static Membership

    서론Kafka Consumer는 여러 가지 이벤트를 통해 리밸런싱이 발생한다.Consumer ↔ GroupCoordinator 간 session.timeout.ms 내에 Heartbeat가 수신되지 않은 경우Consumer가 Consumer Group을 나가거나 들어오는 경우Consumer Group이 구독하는 토픽의 파티션이 추가되는 경우 등Consumer는 리밸런싱이 시작되면 완료되기 전까지 데이터를 처리하지 못한다. 이로 인해 데이터 처리가 일시 중단되며 지연이 발생한다.또한, 리밸런싱 과정에서 파티션을 Revoke/Assign 하는 과정에서 네트워크 부하 등으로 인한 클러스터 성능 저하가 발생한다. Kafka 2.3.0부터는 이러한 리밸런싱의 단점을 보완하기 위해 Static Membership이..