반응형
SpringBoot 설정을 잘못해서 kafka 연결이 안 되는 문제를 해결했다.
📌 서론
이번 포스트는 SpringBoot의 application.yml에 kafka 설정을 잘못해서 오류가 발생한 부분을 수정한 내용이다.
발생했던 오류는 스프링 서버를 실행했을 때 consumer의 연결이 불가능했던 문제다.
1. SpringBoot에 KafkaListener 코드를 작성하자
kafka를 실행했는데 에러가 발생했다.
- 이건 연결 에러인데 로그만 봐도 Consumer관련 오류인 것을 알 수 있다.
[Consumer clientId=consumer-error-handler-group-1, groupId=error-handler-group]
Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected
application.yml 세팅을 확인해 보자
- 오류코드를 보고 바로 consumer 쪽에 문제가 생겼다고 판단했고 yml에 작성한 내용을 확인했다.
spring:
kafka:
producer:
bootstrap-servers: localhost:10000,localhost:10001,localhost:10002 # 카프카 서버 주소
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.apache.kafka.common.serialization.StringSerializer
consumer:
group-id: error-handler-group
auto-offset-reset: earliest
template:
default-topic: error-messages
여기서 빼먹은 부분이 있는데 producer, consumer 모두 bootstrap-servers를 설정해줘야 한다는 것이다.
- producer에만 설정을 해줘서 서버를 실행했을 때 consumer가 연결하지 못해서 계속 연결 관련 에러 로그를 보여줬던 것이었다. 아래와 같이 수정하면 된다.
kafka:
bootstrap-servers: localhost:10000,localhost:10001,localhost:10002 # 카프카 서버 주소
producer:
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.apache.kafka.common.serialization.StringSerializer
consumer:
group-id: error-handler-group
auto-offset-reset: earliest
template:
default-topic: error-messages
application.yml을 수정하고 다시 서버를 실행하니 kafka 연결에 성공하는 것을 볼 수 있다.
사이드 팀원 "평양냉면"님의 블로그도 들려주세요! 좋은 글이 많습니다.
반응형
'유용한 개발지식 > Apache Kafka' 카테고리의 다른 글
Kafka에서 Locale.ROOT 사용의 중요성 (3) | 2024.12.06 |
---|---|
[kafka] Docker로 카프카 실행하기 (KRaft 모드) (7) | 2024.08.25 |
[kafka] 스프링부트와 kafka를 이용한 slack 예외알림 구현 (1) | 2024.02.18 |
[Kafka] 슬랙 webhook 설정하기 (kafka에서 호출) (0) | 2024.02.18 |
[Kafka] SpringBoot3.x.x에서 Kafka 연동하기 (2) | 2024.02.18 |