首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ActiveMQ:当持久存储填充时拒绝来自生产者的连接

ActiveMQ:当持久存储填充时拒绝来自生产者的连接
EN

Stack Overflow用户
提问于 2013-05-21 03:18:25
回答 1查看 609关注 0票数 2

当代理达到配置的限制时,我想将我的ActiveMQ生产者配置为故障转移(我正在使用Stomp协议)。我想让消费者继续从超载的经纪人消费,有增无减。

阅读ActiveMQ文档后,当代理(内存或磁盘)达到其极限时,我似乎可以将ActiveMQ配置为完成少数几件事情中的一件:

  1. 使用producerFlowControl="true"减慢消息(通过阻塞发送)
  2. 使用sendFailIfNoSpace="true"时抛出异常
  3. 以上两种情况,我都不知道会发生什么?恢复到TCP流控制?

看起来,这些东西都不是为了触发生产者故障转移而设计的。当生产者无法连接时,它就会出现故障转移,但据我所知,当它无法发送时(例如,由于生产者流控制),它将失败。

那么,当代理达到极限时,我可以配置它来拒绝连接吗?还是我最好的选择是在生产者端检测速度减慢,并手动地重新配置我的生产者,以便在那个时候使用不同的代理?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-23 08:00:35

最好的选择是使用sendFailIfNoSpace,或者更好的sendFailIfNoSpaceAfterTimeout。这将向客户端抛出一个异常,然后客户端可以尝试在应用程序级别将消息重新发送给另一个代理(尽管您可以将此逻辑封装在Stomp库的顶部,并从代码中使用此facade )。虽然如果您的ActiveMQ设置是正确连接的,您的负载在生产和消费方面都应该或多或少地均匀分布在您的代理中,所以这个特性可能不会给您带来很大的开销。

如果您专注于快速消耗消息,并增加存储限制以平滑加载中的峰值,您可能会得到更好的结果。

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

https://stackoverflow.com/questions/16661586

复制
相关文章

相似问题

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