본문 바로가기

MessageQueue18

카프카 컨슈머 그룹의 리벨런싱 카프카 컨슈머 그룹의 리벨런싱 카프카는 컨슈머그룹이 존재한다. 이때 컨슈머그룹에서 broker가 잘못되어 빠지게 되거나, 그룹에 추가적인 컨슈머가 들어올때 리벨런싱을 진행하게 된다. 리벨런싱이 일어날때 Consumer 의 Partitioner 가 어떤 전략을 사용했느냐에 따라 컨슈머가 연결되는 Topic의 partition 이 달라진다. 프로듀서와 컨슈머에대한 파티션전략은 여기를 참고 kafka partitioner 전략 (consumer) - 작성중 kafka partitioner 란? (producer, consumer) 리벨런싱(rebalancing)이 생기는 이유 Consumer Group 내의 consumer 가 추가 되거나 삭제될때 클러스터링 확장 혹은 컨슈머 브로커에서 장애가 발생했을때 일어.. 2023. 6. 23.
spring, kafka offset commit 정책 1. KafKa Offsets commit 정책 consumer configuration 에서 commit config 를 false로 설정 되었을경우, 즉 commit을 자동으로 하지 않았을 경우에 어떤게 commit을 할지 결정 하는 모드 이다. 커밋 오프셋을 하기 위한 몇가지 옵션이 존재 하며, 기본 BATCH 이고 다른 옵션으로 사용 가능하다. https://docs.spring.io/spring-kafka/reference/html/#committing-offsets 근데 이렇게 기본옵션인 auto commit을 사용하게 되면 배치모드로 동작하게되고 특정 부분에서 문제가 생겼을때, 유실되는 부분이 생길수있다. (spring boot 의 자동커밋 기본 시간은 5000ms) 그래서 중요한 업무를 수.. 2023. 6. 14.
kafka partitioner 종류와 전략 (producer) kafka partitioner 종류와 전략 (producer) 1. Kafka Producer의 Partition 종류 카프카 프로듀서에는 몇 가지 파티션분배 전략이 존재한다. 이중 자주사용되거나 중요한 몇가지에 대해서만 이야기 해보자 . DefaultPartitioner - 기본(org.apache.kafka.clients.producer.DefaultPartitioner) 메세지의 키 또는 라운드 로빈 방식에 따라 메세지를 토픽의 파티션에 할당한다. 동일한 키는 항상 동일한 파티션으로 분배되도록 하고, 키가없는 경우에만 라운드로빈으로 된다. 메세지 처리시 순서보장은 하지 않는다. → 이전략은 일반적으로 키가 랜덤하게 생성되는경우에 사용할수있다. RoundRobinPartitioner(org.apac.. 2023. 6. 12.
컨슈머 그룹(consumer group) offset 관리 및 reset 방법 컨슈머 그룹(consumer group) offset 관리 및 reset 방법 1. Consumer offset - reset(리셋) 방법 운영중에 특정 offset으로 이동하여 다시 실행하고자 할경우에 사용할 수 있다. 혹은 테스트중에 컨슈머를 모두 리셋시키고 싶을경우에 사용한다. 1.1 컨슈머 삭제 컨슈머그룹을 바꿔주거나 컨슈머를 삭제고 다시 생성하는게 제이 빠른것 같다. kafka-consumer-groups.sh --bootstrap-server : --group --topic --delete --execute 1.2 컨슈머 offset 변경방법 (리셋) 오프셋 변경방법에도 여러가지가 있다. 타임 단위로 이동할 수도 있고 , 초기상태로도 할 수있다. 즉 kafka 컨슈머 그룹의 offset을 리셋.. 2023. 6. 9.