【问题标题】:How to custom header message exception in DLQ如何在 DLQ 中自定义标头消息异常
【发布时间】:2019-04-30 20:30:56
【问题描述】:

我想在死信队列中自定义异常消息或添加带有自定义异常消息的新标头参数。

现在我在死信队列消息的标题中得到了原始堆栈跟踪

@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

【问题讨论】:

    标签: apache-kafka spring-cloud-stream


    【解决方案1】:

    您的问题不清楚;使用 RabbitMQ binder,您可以设置 republishToDlq 以获取添加到消息中的异常信息。

    the documentation

    republishToDlq

    默认情况下,重试次数用尽后失败的消息将被拒绝。如果配置了死信队列 (DLQ),RabbitMQ 会将失败的消息(未更改)路由到 DLQ。如果设置为 true,则绑定器将失败的消息重新发布到 DLQ,并带有其他标头,包括异常消息和最终失败原因的堆栈跟踪。另请参阅 frameMaxHeadroom 属性。

    默认值:假

    使用Kafka binder,异常信息总是添加到headers中的死信记录中;目前没有自定义该信息的机制。

    【讨论】:

    • 现在我使用 Kafka 将消息发布到 DLQ 时,它将在标头中显示 x-exception-stacktrace 节点,因此我想添加另一个具有自定义消息异常的节点。感谢您的回复。
    • 您需要准确地说明您想做什么。 &gt;"another node" ?这意味着什么?一些额外的标题?使用Kafka binder,异常信息总是添加到headers中的死信记录中;目前没有定制该信息的机制。如果您可以解释您想要做什么,则可以添加扩展点,或者如果您认为缺少某些内容,则可以解决问题。
    猜你喜欢
    • 2020-02-16
    • 1970-01-01
    • 2015-11-04
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多