ActiveMQ 限速对外服务

Posted

技术标签:

【中文标题】ActiveMQ 限速对外服务【英文标题】:ActiveMQ rate limit external service 【发布时间】:2014-06-07 10:08:40 【问题描述】:

假设我们有一些网络爬虫系统需要扩展到许多工作人员。 每个工人都有一个限制,例如最大值。每个可抓取的网络主机每分钟 5 个 HTTP 请求。

“per web host”可以在消息头中,由生产者填充。

我可以教 ActiveMQ 将消息发送到这种 fasion 的节点吗?

【问题讨论】:

【参考方案1】:

ActiveMQ 不支持消费者节流,只支持生产者节流。不过骆驼确实支持这一点,请在此处查看接受的答案:ActiveMQ throttling consumer

【讨论】:

骆驼节流器的选择非常有限。我需要限制“每个可以抓取的网络主机的每个时间段”。使用 Camel Throttler,我只能随着时间的推移限制队列吞吐量。我还需要为每个网络主机或其他消息头值执行此操作。 听起来您必须自己动手 :( 您仍然可以通过 ActiveMQ 将处理请求排队,使用队列按站点对它们进行排序,然后将它们分派给工作人员。消息的一部分可能是节流限制,您可以在其中使用 java 计时和同步原语来实现所需的抓取率。大多数东西都旨在“尽可能快”地运行 :) 很少有人遇到相反的问题

以上是关于ActiveMQ 限速对外服务的主要内容,如果未能解决你的问题,请参考以下文章

基于ActiveMQ的统一日志服务

如何心跳感知与ActiveMQ服务器的连接状态

ActiveMQ 即时通讯服务 浅析

ActiveMQ

windows环境下安装ActiveMQ服务

消息系统之Apache ActiveMQ