在骡子端点不可用的情况下重试机制



>我有一个用例,我从主题中读取消息并传递到 ftp 端点。如果 ftp 端点不可用,我需要将消息存储在存储中这样它就不会丢失。不应处理从主题读取的未来消息。在端点可用之前,一旦端点可用,我们将处理第一个收到的消息后跟所有消息(按接收顺序排列)。我不是确定如何实现这一点。

两个选项:

  • 使用Until Successful范围:http://www.mulesoft.org/documentation/display/current/Until+Successful+Scope

    <until-successful objectStore-ref="objectStore"
                  maxRetries="5" secondsBetweenRetries="60">
        <ftp:outbound-endpoint ... />
    </until-successful>
    

    带有保留排序的objectStore。我认为任何默认实现都不能保证这一点,因此您必须创建自己的实现。

  • 将消息存储在 JMS 队列中,并具有以事务方式使用消息并尝试 FTP 调度的流。如果失败,事务将失败,消息将被推送回队列以进行重新传递尝试。确保使用支持消息排序的 JMS 代理(如 http://marcelojabali.blogspot.ca/2011/11/preserving-message-order-with-apache.html)。

最新更新