[Kafka]_Springboot에 Kafka 연결하기(feat.consumer)

2022. 4. 17. 15:08[Kafka]

728x90
반응형

목표]

1. Springboot 에 kafka 연결 후 consumer 기능 구현하기.

툴: IntelliJ

환경 : Springboot

빌더 : maven

 

---

 

1. Springboot 프로젝트를 생성한다]

 

maven 으로 선택해야한다.

2. pom.xml에 dependency 추가

<!-- kafka dependency        -->
<dependency>
    <groupId>org.springframework.kafka</groupId>
    <artifactId>spring-kafka</artifactId>
</dependency>

3.application.yml 생성

spring:
  kafka:
    consumer:
      bootstrap-servers: 여려분의 IP 주소:9092
      group-id: springtest
      auto-offset-reset: earliest
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
    producer:
      bootstrap-servers: 여려분의 IP 주소:9092
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer

kafka 의 설정과 비슷합니다.

bootstrap-server -> 접속할 kafka 서버의 ip 

만약 serverpropertise에 advertiseListner 설정을 하지 않았다면, localhost 입니다.

groupId -> consumerGroup -> 유니크한 값을 집어넣습니다 (겹치면 안됨)

auto-offset -reset -> 재시작시 읽어드릴 offset 설정

 

key-

value-

이부분은 데이터를 전송할 시리얼라이져들의 설정입니다. -> String 의 값으로 받아옵니다.

 

 

4. 사용할 곳에 @KafkaListner 생성

@KafkaListener(topics = "book", groupId = "springtest")
public void consume(String data) throws Exception{

}

topices 는 접속할 topic 의 이름

groupID는 application에 groupid 값을 넣어줍니다.

 

그리고 consume 함수 안에는 String data 를 받아오는데

consumer가 읽어온 메시지를 string 형태로 받아온 것입니다.

이를 핸들링하여 원하는데로 조작 할 수 있습니다.

 

감사합니다.

 

728x90
반응형