본문 바로가기

kafka2

Redis, Kafka Deserialize with FQCN Redis 나 Kafka 의 de/serialized 할 때, 객체의 패키지명(Fully Qualified Class Name) 이 직렬화 데이터(본문 혹은 Kafka 헤더)에 포함되는 경우가 있다. 역직렬화할 때, 그 대상 클래스를 알아야하기 때문에 객체의 FQCN 을 메세지에 포함하는 방식이다. Kafka 의 경우 DefaultKafkaHeaderMapper 사용 시 헤더에 __TypeId__키로 클래스명을 저장한다. Redis 의 경우에는 GenericJackson2JsonRedisSerializer 사용 시 @class 를 속성으로 포함한다. FQCN 기반으로 클래스 로딩을 시도하며, 해당 클래스가 없으면 오류가 발생한다. 나는 이 방식은 위험하다고 생각했다. 패키지명이 변경되면 역직렬화시 오류가.. 2025. 5. 25.
SpringKafka Consumer 설정값으로 요리조리 테스트 해보기 SpringKafka Consumer 설정값으로 요리저리 놀아보았습니다. 해당 포스트에서는 그 과정을 전시합니다. 키워드는 두 가지 입니다. AckMode Concurrency 주로 쓰이는 kafka 설정값을 나열해보았습니다.   여기서 눈여겨봤던 것이 ContainerProperties 의 setAckMode 입니다. 그리고 하나는 acknowledgement 입니다. 이 둘은 연관이 있습니다. 어떤 연관을 가지고 있는지, 각각은 어떻게 가져갈 수 있는지 확인해보겠습니다.  일단 ContainerProperties 의 setAckMode는 메세지를 소비할 때 acknowledgement 모드를 설정하는데 사용됩니다. acknowledgement 는 메세지가 성공적으로 처리되었음을 브로커에게 알리는 역할.. 2024. 8. 6.