인프라/Kafaka

카프카 리스너 종류 1- 단일 메시지 리스너

물에서육지로 2024. 12. 6. 14:01

카프카의 리스너 종류에 대해 이전에 알아봤다.

https://foulerback.tistory.com/26

 

Kafka 리스너(Listener) 개념과 종류

Kafka Listener는 Apache Kafka로부터 데이터를 소비하는 역할을 수행하는 Spring Kafka의 기능입니다.Kafka에서 토픽(topic)에 쌓인 메시지를 리스너가 구독하여 처리합니다. Spring Kafka는 이를 손쉽게 구현할

foulerback.tistory.com

 

이 중에서 각각의 리스너들을 어떻게 사용되는지 내 의지가 닿는한 까지 파헤쳐 보려고 한다.

중간에 스킵되면.. 의지가 떨어져 나갔다고 생각하길 바란다..

 

단일 메시지 리스너:

  • 한 번에 하나의 메시지를 처리합니다.
  • Kafka에서 메시지를 가져올 때마다 리스너 메서드가 호출됩니다.

단일 메시지 리스너는 일단 한 번에 하나의 메시지를 처리한다.

 

예제 샘플로 이해를 해보자

1. 컨트롤러 단에서 호출할 메소드 만들어 준다.

단일 메시지 리스너는 /message 를 호출해서 포스트맨으로 확인 해 볼 것이다.

 

2. Producer에서 메세지 보내기 만들어 준다.

단순히 메세지 20개를 보내보겠다.

 

3. Consumer에서 메세지 받는다.

컨슈머에서 메세지를 받아서 어떻게 출력되는지 확인해본다.

 

4.카프카 설정

kafaconfig 파일에서 prodcer에 대한 설정을 해준다.

yml파일에서 지정해서 사용할 수도 있지만 단일 메세지리스너에서만 사용할 수 있게 카프카 템플릿을 설정해줬다.

 

컨슈머에서 구독할수 있게 설정해줬다.

나중에 배치 리스너에서 볼 예정이지만 주석 걸린 저 1줄만 풀어주면 배치 리스너로 동작하게 된다. 

배치 리스너는 다음에 확인해보겠다.

 

5.결과

스웨거를 공부해서 설치 좀 해야겠다.

그전에 포스트맨으로 호출한다.

 

그러면 위와 같이 각 메세지별로 메세지가 구독되는 것을 볼 수 있다.

단일 메세지는 그래서 한번에 하나씩만 구독된다.

메시지 처리 하나의 메시지를 하나씩 처리
메서드 호출 메시지 하나마다 메서드가 호출됨
성능 처리량이 적고, 실시간성에 유리
설정 기본 설정 사용 (@KafkaListener만 사용)

 

다음에는 배치 리스너와 단일 리스너의 차이점을 확인해 보려고 한다.