如何限制向消费者传递消息?

tcbh2hod  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(373)

我正在寻找一个内置节流功能的消息队列。用例是收件人工作池可以接受很多消息,但是工作池所依赖的服务可能无法处理负载。由于工作线程示例处理不同类型的消息,因此无法减少工作线程池。
所以我要找的功能是基于主题的节流。说一个主题 T ,我希望队列接受来自生产者的尽可能多的消息,但限制消费者对主题的需求 T 也就是说每分钟只发送5条信息。

gwbalxhn

gwbalxhn1#

如果您使用的是ironmq,那么如果您使用的是“拉”队列,则可以限制消息。此功能需要从用户代码手动完成。如果使用“推送”队列,则无法限制消息。但是,您的消费者将以最高的速率接收消息。以下是描述推拉队列的链接:https://dev.iron.io/mq/3/reference/push_queues/index.html
如果您还有其他问题,请通过聊天、电子邮件或电话联系iron.io支持。

bwntbbo3

bwntbbo32#

对于java,以下解决方案可能有效,它们也应该可用于node
您可以通过控制消费者的 poll() 电话。
尝试在调用 poll() 尝试在中使用更多超时 poll() 并使用以下属性 MAX_POLL_RECORDS_CONFIG 控制要发送的消息数
在一次投票中接收。

相关问题