春季集成备份频道



i'introducin Spring Integration而不是我们项目中的旧版集成体系结构。该体系结构支持发件人和接收器。每个发件人可以配置3个目的地。

  1. 主要数据流,应在其中传递消息。可以文件系统,JMS,邮件等
  2. 备份流。将每个接收到的消息存储到备份目的地。通常是文件appender,其中每个消息存储在文件末尾。那也可以是JMS队列。备份使我们有机会获取消息并重播整个系统失败,并且数据丢失
  3. 失败流。如果我们无法将消息发送到目标(没有连接,格式未能创建消息)将消息放入此队列中。

春季集成网关看起来合适。我可以将默认重复渠道用于主流量,用于故障流量的错误通道。备份流的问题。如何复制网关传入消息并将其放置到备份频道?

ps更确切地说是一个测试和代码。

https://github.com/semenodm/coding-eccises/tree/master/spring-integration/spring-integration/src

test i_want_my_sender_put_message_into_fail_fail_queue_queue_queue_sending_failed_failed 失败了,因为无论主流的失败或成功,电线TAP总是将消息放入其队列中。

我不想添加自定义拦截器来处理此逻辑并使用配置解决此问题。

您可能需要考虑添加发送到" backupchannel"的电线。

请参阅:http://static.springsource.org/spring-integration/docs/2.1.x/reference/htmlsingle/#channel-wiretap

如果将两个适配器订阅到直接通道,没有负载平衡并在每个订户上设置订单属性,则框架将自动失败到第二个适配器,如果第一个引发异常。

<int:channel id="foo>
    <int:dispatcher load-balancer="none" />
</int:channel>
<... id="primary" order="1" .../>
<... id="secondary" order="2" .../>

默认的负载范围是圆形旋转。

另一个选项是在即将到来的2.2版本中使用新的ExpressionValuatingMessageHandlerAdvice ...

http://blog.springsource.org/2012/10/09/spring-integration-2-2-2-2-2-cretry-and-more/

最新更新