rabbitmq 的队列是否可以实现消费速率的流控?
就是设置消费速率的意思
比如不管这个队列有多少个消费者,限制这个队列,每分钟只能分发给(所有)消费者(加起来) 100 个任务
如果不能在 rabbitmq server 端实现流控,而是要在消费者端流控的话,那么消费者就要引入 redis 等组件,变得复杂且丑陋。这是我不希望的
或者说哪个主流的消息队列支持流控?kafka?rocketMQ?pulsar?
rabbitmq 的队列是否可以实现消费速率的流控?
就是设置消费速率的意思
比如不管这个队列有多少个消费者,限制这个队列,每分钟只能分发给(所有)消费者(加起来) 100 个任务
如果不能在 rabbitmq server 端实现流控,而是要在消费者端流控的话,那么消费者就要引入 redis 等组件,变得复杂且丑陋。这是我不希望的
或者说哪个主流的消息队列支持流控?kafka?rocketMQ?pulsar?
RabbitMQ 本身并不直接支持队列级别的消费速率限制。它主要关注的是消息的路由、队列的持久化、消息的优先级等功能,而不是消息的消费速率。
如果你想要实现消费速率的流控,有几种可能的方案:
ratelimiter
库或者 Java 的 RateLimiter
类来限制消费者的处理速度。这种方式不需要依赖 RabbitMQ 本身的功能,但可能会增加消费者的复杂性。请注意,这些方案都有其优缺点,你可能需要根据具体的需求和环境来选择最合适的方案。
15 回答8.4k 阅读
4 回答4.4k 阅读✓ 已解决
4 回答4k 阅读
3 回答2.1k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决