본문 바로가기

Kafka

(2)
Apache Kafka 기본 개념 (Partition / Consumer / Consumer Group/ Offset Management) Kafka는 가장 널리 쓰이는 메세지 큐 솔루션 중 하나이다. 다른 메세지 큐와 마찬가지로, Producer가 메세지를 publish하면 Consumer가 큐를 susbscribe하며 메세지를 가져가게 된다. 다만, 이 사이에 Topic / Partition / Consumer Group과 같은 개념이 등장하게 된다. Message Order within Topic / Partition Kafka에서 Producer는 Topic에 메세지를 보내고, 하나의 Topic은 한 개 이상의 Partition으로 나뉘어지게 된다. 이는 topic을 생성하는 시점에 명시할 수 있다. $ /usr/local/kafka/bin/kakfa-topic.sh \ --zookeeper $LIST_OF_ZK_NODES --top..
Cloudstream Kafka Found no committed offset for partition 로그 분석. Kafka offset reset 트러블슈팅 Spring Cloudstream Kafka를 사용중, 종종 아래와 같은 INFO 로그를 보게 되었다. Found no committed offset for partition [topic name-partition] 처음에는 INFO 로그이기에 대수롭지 않게 넘겼는데, 이후 consumer에서 이해가 가지 않는 상황들이 발생하며 해당 로그를 다시 들여다보게되었다. consumer가 한번씩 이미 consuming한 record를 다시 처음부터 consuming하고있는 상황이었다. 그로 인해 구글링을 해본 결과 아래의 두 article을 발견했고 실마리를 찾았다. Kafka offset은 broker가 관리하게 된다. (0.8.x까지는 Zookeeper가 관리하였으나, 0.9부터 변경되었다), Kafka b..