1

我正在寻找具有内置限制功能的消息队列。用例是接收者工作池可能会接受大量消息,但工作人员所依赖的服务可能无法处理负载。由于工作程序实例处理不同类型的消息,因此无法减少工作程序池。

所以我正在寻找的功能是基于一个主题进行节流。说一个主题T,我希望队列接受来自生产者的尽可能多的消息,但限制消费者对主题的需求,T说每分钟只传递 5 条消息。

4

2 回答 2

1

对于 Java,以下解决方案可能有效,它们也应该可用于节点

  • 您可以通过控制消费者的poll() 呼叫来限制消息。
  • 尝试在调用之间休眠线程poll()

  • 尝试使用更多超时时间poll()并使用以下属性来控制您将 在一次轮询中收到
    MAX_POLL_RECORDS_CONFIG多少消息。

于 2018-01-12T21:51:05.417 回答
0

如果您使用 IronMQ,则可以在使用“拉”队列时限制消息。此功能需要从用户的代码中手动完成。如果您使用“推送”队列,您将无法限制消息。但是,您的消费者将以最高的速度接收消息。这是描述推送和拉取队列的链接:https ://dev.iron.io/mq/3/reference/push_queues/index.html

如果您还有其他问题,请通过聊天、电子邮件或电话联系 Iron.io 支持。

于 2020-11-10T20:57:09.803 回答