Spring Cloud Kinesis Binder如何为生产者和消费者处理错误-根据文档,它不起作用

问题描述

我已遵循以下文档,并且有一个生产者和一个消费者可以与Kinesis Stream完美地结合在一起。我想了解在发生任何异常的情况下如何处理生产者(源)和消费者(处理器)中的错误。

我已经按照Spring Stream错误处理文档尝试了以下方法:

  1. 我尝试使用 @ServiceActivator(“ input-stream.input-stream-group.erros”)-可以,但是根据策略,我的“ input-stream”是每个生产环境中的动态名称,我应该在定义该名称时附加一个生产环境名称数据流。这是首选方法,但是如何解决此问题?

  2. 我尝试使用@ServiceActivator(“ errorChannel”)-如果我引入了错误提示,则此错误将无法捕获并打印 方法,并放入Logger,但由于org.springframework.cloud.stream.binding.StreamListenerMessageHandler中的重新抛出次数不足而引发错误(第53-68行)

        catch (Exception e) {
        if (e instanceof MessagingException) {
            throw (MessagingException) e;
        }
        else {
            throw new MessagingException(requestMessage,"Exception thrown while invoking "
                            + this.invocableHandlerMethod.getShortLogMessage(),e);
        }
    }
    
  3. 我已经自动连接了一个名称为“ errorChannel”的MessageChannel 在捕获异常的同时,我准备了一条消息并发送 ,但与上面的ServiceActivator方法相同。

我该如何处理和解决此问题?请提出建议并帮助我。

文档:https://github.com/spring-cloud/spring-cloud-stream-binder-aws-kinesis/blob/master/spring-cloud-stream-binder-kinesis-docs/src/main/asciidoc/overview.adoc#error-channels

解决方法

只为所有面临这个问题的人们造福。如果您错过评论部分。 Deepak Chaudhary的答案对消费者来说效果很好。

如果有帮助,请签出stackoverflow.com/questions/63270755/…。谢谢。 – Deepak Chaudhary

谢谢Deepak

想了解我们如何为制作人做到这一点。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...