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 限速对外服务的主要内容,如果未能解决你的问题,请参考以下文章