Kafka 컨슈머
토픽에서 데이터를 읽을 수 있게 만들어주는 기능
-
컨슈머는 Pull 모델을 구현한다.
-
컨슈머는 카프카 브로커, 즉 서버에서 데이터를 요청하고 되돌아오는 응답을 받는다.
-
데이터를 컨슈머에게 푸싱하는 건 카프카 브로커가 아니고 풀모델이다.
-
컨슈머는 둘이상의 데이터를 읽으려 할수도 있고, 하나만 읽으려 할수도 있다.
-
컨슈머들은 자동으로 어떤 브로커, 즉, 카프카서버에서 읽을지 알게 된다.
-
브로커가 오류가 나면 컨슈머가 아주 스마트해서 그걸 어떻게 복구할지 알게 된다.
- 파티션중 어떤게 먼저 읽을지에 대한 순서는 보장하지 않는다. 이유는 그 파티션들이 모두 다른 파티션이기 때문이고 순서 자체는 파티션 안에서만 존재하기 때문
Kafka 컨슈머 변환과정
- 카프카 메세지에 담긴 데이터에 해당하는 값이 있다. 이것을 프로그래밍 언어가 사용할 수 있는 객체로 변환해야 하는데 컨슈머는 미리 그 메세지의 형태가 무엇인지 알고 있어야 한다.
- 이 인스턴스에서 이 컨슈머는 특정 타입인걸 알고 있고 역직렬화를 실행해서 최종적으로 원본 데이터로 변경해서 반환해준다.
- 토픽의 생명주기 안에서 토픽이 생성되는 순간부터 이미 정해진 타입이기 때문에 미리알 수 있다.
- 결과적으로 데이터가 변경할 수 없는 이유이기도 하다.
- 자료형을 변경하고 싶으면 새로운 토픽을 생성해야 한다.