我有一个如下所示的集成流程,我想为整个集成流程添加一个重试。像流程中的任何异常一样,我们会重试,并在重试用尽时将其发送到死信队列。
IntegrationFlows
.from(kinesisInboundChannelAdapter(amazonKinesis(), streamNames))
.transform(new IssuanceTransformer())
.route(router())
.get();
您能帮我配置重试和死信队列吗?
谢谢
答案 0 :(得分:0)
您对集成流程和重试的理解有些错误。重试它申请了一些服务呼叫。当我们的流程像您一样复杂时,我们还会在服务呼叫之间建立渠道。因此,您可以做的是对您认为错误的每个组件进行重试。为此,您需要查看RequestHandlerRetryAdvice
的{{1}}和advice()
选项。
如果您确实将所有逻辑都放在一个线程和相同的调用堆栈中,那么我们真的可以提出“重试整个子流”之类的解决方案,但是从Spring Integration的角度来看,它仍然像一项服务呼叫。为此,您需要查看ConsumerEndpointSpec
的{{1}} EIP方法:
.gateway()