首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用VM队列在CloudHub中实现可靠性模式

用VM队列在CloudHub中实现可靠性模式
EN

Stack Overflow用户
提问于 2015-03-10 15:19:45
回答 1查看 1.1K关注 0票数 2

我在我的Mule应用程序中或多或少地使用持久VM队列CloudHub实现了可靠性模式,如文档中的这里。虽然一切都很好,但它给我留下了许多关于如何确保消息可靠传递的问题。为了说明下面的要点,假设我的“应用程序逻辑流”中有http-request组件(请参阅上面链接上的图表),该组件正在抛出一个异常,因为端点已经关闭,并且我希望确保in消息最终将被传递到端点:

  1. 正如上面的链接所详述的那样,我注意到当异常在我的“应用程序逻辑流”中抛出时,并且我已经对流进行了事务性处理,该消息将返回到VM队列中。然而,所发生的一切是消息被重复地从队列中取出,由流处理,然后异常再次抛出--无限大。在VM队列上配置任何类型的重试延迟或最大重试次数似乎都是不可能的,例如使用ActiveMQ。我所做的最好的工作是将http-request消息处理器与until-successful作用域围绕在一起,但我希望这类事情适用于我的整个流(而不必将整个流封装在until-successful中)。仅使用VM队列和CloudHub就可以实现这类事情吗?
  2. 我已经将我的until-successful配置为将消息放置到另一个VM队列中,我想将它用作一个死信队列。同样,这也很好,我可以登录到CloudHub并看到我的DLQ上填充的消息--但是当端点恢复时,它似乎无法将消息从这个队列移回流中。在CloudHub中,您所能做的似乎就是清除队列。同样,这是否可能仅使用VM队列和CloudHub (即没有其他排队工具)?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-10 16:05:26

无论是否在CloudHub中使用,VM队列都是非常基本的。

  1. VM队列没有延迟重发的能力(如指数回退)。如果需要这样的特性,可以使用JMS队列。
  2. 您需要创建一个处理DLQ的流,例如,通过请求者模块定期消耗队列并将消息重新注入主队列的流。同样,使用JMS,您将有更好的控制。

或者,对于JMS,您可以考虑托管队列,如CloudAMQP、Iron.io或AWS。您将失去对入站端点的事务支持,但将获得对(Re)传递行为的更好控制。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28967505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档