Software Engineering Note

kafka simple consumer 본문

솔루션/kafka

kafka simple consumer

devmoons 2015. 9. 6. 01:28

kafka 메시지를 처리하는 클라이언트 입장에서는 크게 simple consumer, high level consumer로 나누어진다.


대부분 high level consumer로 문제를 해결할 수 있지만 세세한 컨트롤이 필요한 경우에는 simple consumer를 써야한다.


얼마전에 http api로 데이터를 뒷단에 줘야하는 일이 있었다.


데이터 큐로 kafka를 사용하고 있었는데 여기에 있는 데이터를 넘겨줘야 했다.


그런데 한 번 주고 끝나는 것이 아니라, 과거에 줬던 데이터들을 다시 줘야 하는 경우가 있었다.


그걸 처리하기 위해서 db에 넣었다가 주는 등의 해결책이 거추장스럽게 느껴져 바로 꺼내줄 수는 없을까? 고민했는데


아래와 같이 http client를 만들어둔걸 보고 가능하리라 생각했다.


http rest client: https://cwiki.apache.org/confluence/display/KAFKA/Clients#Clients-HTTPREST


과거의 메시지를 다시 처리하기 위해서는 offset을 왔다기 갔다리 컨트롤 해야하는데 high level consumer에서는 이게 안되는 것같다. 

(아시는분은 방법 공유 좀...)


물론 내부적으로 큐에다가 쌓았다가 하는 방법도 있겠지만 이런 방법은 뭔가 깔끔하지 않다.


결국은 simple consumer로 해결했다.


simple consumer 예제들은 많지않아서 한 번 만들어봤다.


simple consumer example: https://github.com/xgate/kafka-toy/tree/master/src/main/scala/consumer/simple


역시 이 바닥에서는 왠만한건 다 있어서 함부로 안된다고 말해서는 안된다.


'솔루션 > kafka' 카테고리의 다른 글

kafka send large message  (0) 2020.05.07
kafka 소개  (0) 2015.09.06