我已遵循以下文档,并且有一个生产者和一个消费者可以与Kinesis Stream完美地结合在一起。我想了解在发生任何异常的情况下如何处理生产者(源)和消费者(处理器)中的错误。
我已经按照Spring Stream错误处理文档尝试了以下方法:
我尝试使用 @ServiceActivator(“ input-stream.input-stream-group.erros”)-可以,但是根据策略,我的“ input-stream”是每个生产环境中的动态名称,我应该在定义该名称时附加一个生产环境名称数据流。这是首选方法,但是如何解决此问题?
我尝试使用@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);
}
}
我已经自动连接了一个名称为“ errorChannel”的MessageChannel 在捕获异常的同时,我准备了一条消息并发送 ,但与上面的ServiceActivator方法相同。
我该如何处理和解决此问题?请提出建议并帮助我。
答案 0 :(得分:0)
只为所有面临这个问题的人们造福。如果您错过评论部分。 Deepak Chaudhary的答案对消费者来说效果很好。
如果有帮助,请签出stackoverflow.com/questions/63270755/…。谢谢。 – Deepak Chaudhary
谢谢Deepak
想了解我们如何为制作人做到这一点。