使用 Kafka binder 在 Spring Cloud Stream 中重播来自死信队列的消息

Replay messages from dead letter queue in Spring Cloud Stream with Kafka binder

我们正在使用 Spring Cloud StreamConfluent Schema RegistryA​​vroKafka 活页夹。我们已将数据处理管道中的所有服务配置为使用共享的 DLQ Kafka 主题来简化异常处理过程并能够重放失败的消息。但是,由于某些原因,我们似乎无法正确提取有效负载消息,因为具有不同模式的消息被发布到单个 dlq。因此,我们正在丢失原始消息的模式轨迹。

我想知道是否有任何方法可以在 dlq 中维护失败消息的原始 schema_id,以便可以将其用于无缝重播。

事实证明,通过将主题命名策略更改为 RecordNameStrategy 可以实现这一点,并且无论主题名称如何,记录都会在所有主题中保持原始模式。可以找到更多详细信息 here.