스프링 프레임워크/kafka 3

Chaining Kafka and Database Transactions with SpringBoot

Chaining Kafka and Database Transactions with Spring Boot, Minikube, Debezium connector for MySQL 이번 포스트에서는 kafka produce와 database transaction을 원자적으로 처리하는 것을 kotlin + springboot + mysql + kafka 조합으로 구성해봤습니다.kafka message produce와 JPA 영속화 코드를 트랜잭션으로 묶는게 목표였으나, 리서치해보고 직접 여러 가지 방법을 POC해봤을때, 서로 다른 솔루션을 같은 트랜잭션으로 묶는건 그렇게 간단하지도, 운영에서 사용하는게 맞을지도 미지수이기 때문에 운영에 사용할 방법은 아니라는 결정을 내렸습니다.대안으로는 Kafka Connect..

spring-kafka DelegatingByTopicDeserializer 역직렬화

이번 포스트에서는 topic명에 해당하는 타입으로 역직렬화를 다루겠습니다 환경springboot 3.1.10gradle 8.7java 17spring-kafkaspring-kafka를 통해 producer, consumer를 사용하게 되면header에 typeId가 들어가게되고 타입에 해당하는 패키지정보가 들어가있습니다kafka client가 java를 쓰지 않을 수도 있습니다 header에 아무런 값을 설정하지 않고 key, value만 가지고 publish할수 있습니다header의 typeId 정보가 없는상태에서 deserialize하게 되면 header가 없는 경우에는 다음과 같은 에러가 발생합니다Caused by: java.lang.IllegalStateException: No type infor..

springboot spring-kafka로 consumer 설정

이번 포스트에서는 springboot에서 kafka를 연동해서 consuming을 해보겠습니다 환경springboot 3.1.10gradle 8.7java 17spring-kafkakafka configuration을 설정하지 않아도 autoconfigure를 통해 application.yml으로만 설정이 가능합니다kafka configuration설정을 통해 커스텀하게 설정할 수 있습니다 ConsumerFactory, ConcurrentKafkaListenerContainerFactory 두 가지를 설정하게 되면 컨슈밍할 준비가 되었고KafkaListener로 consuming할수 있습니다kafka configurationConsumerFactorykafkaConsumer 인스턴스를 생성하는 팩토리 인..