首页 > 解决方案 > 如何将自定义标题添加到 DLQ 主题记录?

问题描述

应用程序从一个主题 A 中读取记录,进行次要转换并放入主题 B。如果在将传入的记录数据反序列化为类型 A 期间验证失败,则将消息发送到 DLQ。

@Bean
public Function<KStream<String, RawEvent>, KStream<String, FormattedEvent>> process() {
        
   return input -> input.map((key, event) -> {
       return new KeyValue<>(event.getAttribute().get("id"), new FormattedEvent(event));
   });
}

以下在 application.yml 中正确设置

spring.cloud.stream.kafka.streams.binder.deserialization-exception-handler: sendToDlq
spring.cloud.stream.kafka.streams.bindings.process-in-0.consumer.dlqName: ${DLQ_TOPIC}

我必须能够为在反序列化传入消息以键入失败后出现的 DLQ 主题记录添加一些自定义标头RawEvent

标签: spring-bootspring-cloudapache-kafka-streamsspring-kafkaspring-cloud-stream

解决方案


推荐阅读