avro - 使用 Kafka binder 重播 Spring Cloud Stream 中的死信队列中的消息
问题描述
我们将Spring Cloud Stream与Confluent Schema Registry、Avro和Kafka binder 一起使用。我们已将数据处理管道中的所有服务配置为使用共享的 DLQ Kafka 主题,以简化异常处理过程并能够重播失败的消息。但是,由于某种原因,我们似乎无法正确提取有效负载消息,因为具有不同模式的消息被发布到单个 dlq。因此,我们正在丢失原始消息的模式轨迹。
我想知道是否有任何方法可以schema_id
在 dlq 中保留失败消息的原始内容,以便将其用于无缝重播。
解决方案
事实证明,通过将主题命名策略更改为 RecordNameStrategy 可以实现这一点,并且无论主题名称如何,一条记录都会维护所有主题的原始模式。更多细节可以在这里找到。
推荐阅读
- java - 传递 lambda 表达式(或匿名类)如何在“addActionListener”和类似的行为方法中工作?
- opencart2.x - OpenCart 考虑配对 tpl
- python - python中的复杂函数和3D图形序列
- android - 如何自定义状态栏图标和文字颜色?例如状态栏背景:白色,状态栏图标颜色,文本:红色
- php - Laravel Eloquent - 过滤关系
- c++ - 如何在 cpprest sdk 中将字节数组作为正文数据流式传输?
- java - 使用接口的独占方法进行比较,没有 if 块
- r - “无法分配向量”,但向量似乎很小
- ios - UIProgressView 向后进展
- r - 更改单个模块中的输入时如何更改多个 Shiny 模块的输入?