Kafka Consumer 오프셋, 이제 무중단으로 이동하세요!
by DD
1년 전
조회수 11
Spring Kafka를 사용하여 컨슈머 중단 없이 오프셋 이동을 구현, 가용성 저하 문제를 해결함
Redis Pub/Sub과 HTTP API를 활용하여 분산 환경에서 오프셋 이동 기능을 확장함
오픈소스 기여를 통해 Spring Kafka의 이해도를 높이고, 기능 개선에 참여함
Spring Kafka를 활용한 오프셋 이동 원리
Spring Kafka는 ConsumerSeekAware 인터페이스와 ConsumerSeekCallback을 통해 오프셋 이동 기능을 제공한다. 구체적으로, seek() 메서드를 사용하여 특정 토픽, 파티션의 오프셋을 조정한다. 따라서, 컨슈머 애플리케이션을 중단하지 않고 메시지 재처리가 가능하다.
분산 환경에서의 오프셋 이동 아키텍처
분산 시스템 환경에서 Redis Pub/Sub을 활용하여 오프셋 이동 요청을 전파한다. HTTP API를 통해 오프셋 이동 요청을 받고, Redis 채널에 메시지를 게시한다. 반면, 각 컨슈머는 Redis 리스너를 통해 메시지를 수신하고, ConsumerSeekCallback을 호출하여 오프셋을 이동한다.
오픈소스 기여를 통한 Spring Kafka 이해
Spring Kafka의 오픈소스 기여를 통해 내부 구조를 깊이 이해하고, 기능 개선에 참여했다. 구체적으로, 특정 컨슈머 그룹만 선택하여 오프셋을 이동하는 기능을 개선했다. 결과적으로, 코드 품질 향상과 개발 생산성 증대에 기여했다.