본문 바로가기

개발자를 벗어나긴 글렀다./Spring boot

Spring boot + Spring kafka(Consumer)



1. Config 설정

  - 간단하게 설정파일 수정으로 Consumer가 설정이 끝났다.

  -  application.yml

spring:
kafka:
bootstrap-servers: xxx.xxx.xxx.xxx:xxxx
consumer:
client-id: xxxx
group-id: xxxxxxxx


2. Listener

  - Listener 이미 기생성된 토픽에서 데이터를 받아보자

@Slf4j
@Component
public class KafkaReceiver{

@KafkaListener(topics = "topic-name")
public void receive(String test){
log.info("@@@@@@@@@@@@@@@@@ start of kafka receive");
log.info("###### kafkaListener : {}", test);
}
}


* 발생된 에러 

 Case 1 :  Marking the coordinator XXXXXXX (id: XXXXXX rack: null) dead

             라는 메세지를 발생하며 응답이 없음


        => Solution : Springboot 와 호환되는 Spring kafka 사용 ( https://spring.io/projects/spring-kafka )

            


 Case 2 : Group coordinator is unavailable or invalid, will attempt rediscovery


        => Solution : hosts 파일 수정하여 kafka와 관련된 ip / hostname 추가



참조 : https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-messaging.html#boot-features-kafka