Kafka Consumer Deploy

1 minute read

Kafka Consumer Deploy Process

서비스 환경이 지속적으로 변화함에 따라 카프카 컨슈머 또한 그에 맞게 변화해야 한다. 이러한 변화를 적용하기 위해 새로운 컨슈머를 배포를 하는데 이러한 배포의 방식은 크게 2가지가 있다.

첫번째로 중단 배포, 두번째로 무중단 배포가 있다.

중단 배포

중단 배포는 잠깐동안 서비스가 중지되어도 상관 없는 경우에 배포 방식으로 많이 사용된다. 또한 한정된 서버 자원을 가지고 있을 때 서버 자원을 아낄 수 있으므로 서버 자원이 부족한 경우에 추천되는 배포 방식이다.

중단 배포는 제목과 같이 완전히 실행중인 컨슈머 어플리케이션을 중단한 후 서버에 새로운 신규 컨슈머 어플리케이션을 업로드하여 다시 실행하는 것이다. 이렇게 배포가 진행되는 동안 데이터 파이프라인의 데이터는 컨슈머에 의해 소비되지 않으니 컨슈머 랙이 증가하게 된다. 만약 컨슈머 랙 증가를 막으려면 전체 시스템을 정지한 후 사용자가 사용할 수 없게 네트워크를 막고 배포를 해야한다.

이렇게 중단 배포를 하면 신규 어플리케이션의 실행 시점을 브로커의 offset을 통해 정확히 파악할 수 있다. 이 경우 롤백이 용이하다는 장점이 있다.

무중단 배포

카프카 무중단 배포에는 크게 3가지 방법이 있다.

우선 첫번째로 블루/그린 배포 방식이다. 블루 그린 배포는 이전 버전 컨슈머 어플리케이션과 신규 버전을 동시에 띄어 놓고 트래픽을 전환하는 방식이다. 이 경우 동시에 서버에 컨슈머를 띄어 놓은 다음에 기존의 컨슈머 어플리케이션을 중단하면 리밸런싱이 일어나며 새로운 컨슈머 어플리케이션으로 배정이 된다. 다만 이러한 블루/그린 배포 방식은 파티션과 컨슈머 컨슈머 개수가 동일해야된다. 그렇지 않다면 파티션간의 리밸런싱 작업이 오래 걸리거나 구 버전의 어플리케이션에 파티션이 할당되는 등 파티션과 컨슈머 할당이 꼬일 수 있다.

롤링 배포는 파티션의 개수와 컨슈머 어플리케이션 인스턴스 개수가 같거나 파티션의 개수가 더 많아야지 적용할 수 있는 배포 방식이다. 기존의 컨슈머 어플리케이션 인스턴스들을 한번에 교체하는 것이 아닌 하나씩 버전 업을 하며 교체하는 방식이다. 이 경우 리밸런스가 인스턴스 개수만큼 발생하게 된다.

마지막으로 카나리 배포는 일부 파티션만 새로운 컨슈머 어플리케이션에 적용해서 문제가 있는지 확인을 한 다음 파티션 하나씩 새로운 어플리케이션에 리밸런싱하는 방식으로 사전 테스트 후- 롤링 배포 또는 블루/그린 배포 를 적용하는 방식이다.

출처:

아파치카프카 애플리케이션 프로그래밍 with 자바

카프카, 데이터 플랫폼의 최강자

Tags:

Categories:

Updated:

Leave a comment