Kafka/Connect

Kafka Connect 클러스터 구성 방법과 리밸런싱

재심 2023. 4. 22. 21:51

목차

    [Connect 구성 방법]

    Distributed 구성

    • Standalone : 하나의 워커(프로세스) 로 구성되어 있어 하나의 프로세스로 모든 작업을 처리하는 커넥트 프레임워크 
      • 프로세스 하나 안에 connector + task 로만 이루어져 있음
      • task개수는 읽고자 하는 토픽 개수 혹은 하나의 태스크가 여러개의 작업을 처리함
      • 하나의 프로듀서와 하나의 컨슈머 그룹 과 동일한 구조
      • 모든 작업이 하나의 JVM에서 처리됨
      • 개발단계 등에서만 사용한다
    • Distributed : 복수의 워커로 구성되어 있는 커넥트 클러스터
      • connect instance가 생성되며 얘를 통해 task들을 워커에 골고루 분포시킴
      • 설정한 task 개수에 맞춰 워커에 균등하게 분산시켜줌
      • group id로 묶어 하나의 커넥트 클러스터로 구성 가능하다
      • 운영환경에서 사용한다.

    [Connector Task Rebalancing]

    커넥트 클러스터에 워커가 3개있고, 인스턴스가 2개 있는데 각각의 Task를 3,2로 설정할 경우 위와 같이 배치될 수 있다.

     

     

    Worker 3 Down
    Rebalancing

     

    • 만약 Worker 3에 장애가 나서 다운된다면 Task들이 다른 워커들로 이동하게 된다.
    • 다만 리밸런싱은 워커가 내려갔을 때만 발생하고 Task 자체에서 오류가 발생할 경우 (ex: Key/Value Exception) Task는 실패 상태로 남아있게 되며 해당 Task는 종료된다. (=다른 워커로 재배치되지 않음)