簡體   English   中英

如何將部分 Kafka 消息放入死信隊列

[英]How do I put part of Kafka message in Dead Letter Queue

我有一個 Kafka 應用程序,用 Java 編寫,配置了 DeadLetterPublishingRecorer:

@Bean
public DeadLetterPublishingRecoverer dltPublisherMyApp() {
    return new DeadLetterEnrichAndPublishRecoverer(getDltTemplate("127.0.0.1:9092"),
            (record, exception) -> new TopicPartition(record.topic() + "Error", record.partition()), objectMapper);
}

如您所見,DLT 主題名稱具有“錯誤”后綴。
監聽器很簡單:

@KafkaListener(topics = "#{__listener.createMyObjectConsumerProperties.topic.name}",
        groupId = "#{__listener.createMyObjectConsumerProperties.topic.consumerGroupId}",
        containerFactory = CREATE_MY_OBJECT_KAFKA_LISTENER_FACTORY)
public void consumeLead(CreateMyObjectRequest content) {
    injectedService.createObjects(content);
}

最后是 CreateMyObjectRequest

public class CreateMyObjectRequest {

private List<SmallObjects> smallObjectsList;}

我的要求是處理對象列表 - SmallObject。 如果出現任何問題/錯誤,我必須將 SmallObject 放入 DLT。 不完整的 CreateMyObjectRequest。
請提供一些關於如何配置 Java 應用程序的想法,並僅將部分輸入消息放入 DLT。 即只有一些SmallObjects,不完整的CreateMyObjectsRequest。

謝謝。

與 PM 討論了這個問題,並決定將 SmallObjects 一個接一個地發送到 Kafka,並在 Consumer 中一個接一個地接收它們。
如果有任何錯誤,它們將被自動發送到 LDT。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM