apache-kafka - 如何在 DLQ 中自定义标头消息异常
问题描述
我想在死信队列中自定义异常消息或添加带有自定义异常消息的新标头参数。
现在我在死信队列消息的标题中得到了原始堆栈跟踪
@StreamListener(Sink.INPUT)
public void consumer(Message<Content> message) {
myService.update(message.getPayload().getData().getId());
}
messageInputChannel:
consumer:
enableDlq: true
dlqName: error.message
backOffInitialInterval: 15000 # the interval is 15s between each time retrying
backOffMaxInterval: 30000 # the max interval is not over 30s between each time retrying
maxAttempts: 3
headerMode: raw
解决方案
你的问题不清楚;使用 RabbitMQ binder,您可以设置republishToDlq
获取添加到消息中的异常信息。
请参阅文档。
重新发布到Dlq
默认情况下,重试次数用尽后失败的消息将被拒绝。如果配置了死信队列 (DLQ),RabbitMQ 会将失败的消息(未更改)路由到 DLQ。如果设置为 true,则绑定器将失败的消息重新发布到 DLQ,并带有其他标头,包括异常消息和最终失败原因的堆栈跟踪。另请参阅 frameMaxHeadroom 属性。
默认值:假
使用Kafka binder,异常信息总是添加到headers中的死信记录中;目前没有定制该信息的机制。
推荐阅读
- python-3.x - 为 scatter 的“fillcolor”属性接收到的“builtins.bool”类型的无效值
- kdb - 在 kdb+ 中替换 " " 后删除 \n
- angular - 如何在 Angular 应用中封装 Boostrap 并避免重复代码?
- c# - 通过 Rest API 从 Google Drive 下载部分内容需要太长时间
- java - 使用 Fused Location API 和应用程序意外崩溃
- plotly - Plotly.js - 多层时间轴
- python - Leetcode 200. 岛屿数 TLE
- jquery - 我们如何在数据表的 pdf 中添加页脚上方的行?
- php - php通知会停止php执行吗?
- object-detection - 暗网演示需要用于网络摄像头图像的 opencv OpenCV=1