728x90
스프링에서 @KafkaListener 어노테이션을 사용해서 간단하게 카프카 토픽을 바로보는 consumer를 작성하려면 spring-kafka 라이브러리가 필요하다.
spring-boot를 적용한 환경에서 Maven pom.xml에 아래와 같이 dependency를 걸어주면 된다.
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
그런데 라이브러리가 추가가 안되서 확인해보니, spring-boot 1.5.X 이후부터 spring-kafka를 사용할 수 있었다.
직접 필요한 라이브러리들을 모두 추가하는 방법으로 spring-boot 1.4.X에서도 사용할 수 있는 것으로 보이지만, 그러고 싶지는 않았다.
어쩔수 없이 그냥 스프링부트 버전을 올렸다.
현재 최신버전인 spring-boot 2로 올리면 이곳저곳 소스에 빨간불이 많이 들어온다.
특히 JPA repository쪽이 엄청나다.
그래서 그냥 버전 1 대에서 현재 가장 높은 1.5.19로 업데이트하고, 몇 군데 빨간불이 들어왔지만 쉽게 해결할 수 있는 곳이었다.
물론 더 운영해봐야 알겠지만 다행이 라이브러리 버전 충돌이나 런타임 기능도 잘 동작하는 것으로 보인다.
그리고 @KafkaListener 어노테이션도 사용할 수 있게되었다.
어파치 spring-boot 버전 1.4.X와 1.5.X 초반 버전에서 보안관련 이슈가 있다는 리포트 때문에 날 잡아서 버전업하려고 했는데, 급하지는 않아서 그냥 놔뒀다.
아마 놔뒀으면 그냥 기억에서 잊혀져 갔을 것이다.
역시 사람은 발등에 불이 떨어져야 후딱 일을 한다.
- Spring for Apache Kafka: https://spring.io/projects/spring-kafka
반응형
'IT > PROGRAMMING' 카테고리의 다른 글
[Spring] ConcurrentKafkaListenerContainerFactoryConfigurer를 사용하고 싶다. (0) | 2019.03.14 |
---|---|
[Spring] Hibernate에서 "Could not build ClassFile" 발생하는 오류 해결 (0) | 2019.03.10 |
[Java] 일정시간이 지나면 값이 없어지는(expiring) 맵, 캐시로 사용가능한 ExpiringMap (0) | 2019.02.24 |
[Java] Iterable을 stream으로 처리하기 (0) | 2019.02.20 |
[Spring] spring-boot 버전 1.X와 2.X에서 Page 객체를 ObjectMapper(Jackson) 사용시 차이점 (0) | 2019.02.19 |