8.5. 设置消息消耗率


您可以控制消费者可以使用消息的速率。也称为 节流,规范消耗率可确保消费者永远不会以比配置允许的速度更快地消耗消息。

注意

速率限制的流控制可与基于窗口的流控制一起使用。速率限制的流控制仅影响客户端每秒可以使用的消息数量,而不是其缓冲区中有多少消息。使用较慢的速率限制和基于窗口的高限制,客户端的内部缓冲区会快速填充消息。

速率必须是正整数,才能启用此功能,它是以每秒消息单位指定的最大消息消耗率。将速率设置为 -1 可禁用速率限制的流控制。默认值为 -1。

以下示例显示一个客户端,它将消耗消息的速度限制为每秒 10 个消息。

流程

  • 如果客户端使用 JNDI 来实例化其连接工厂,请将 consumerMaxRate 参数作为连接字符串 URL 的一部分。将 URL 存储在 JNDI 上下文环境中。以下示例使用 jndi.properties 文件来存储 URL。

    java.naming.factory.initial=org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory
    java.naming.provider.url=tcp://localhost:61616?consumerMaxRate=10
  • 如果客户端不使用 JNDI 来实例化其连接工厂,请将该值传递给 ActiveMQConnectionFactory.setConsumerMaxRate ()

    ConnectionFactory cf =  ActiveMQJMSClient.createConnectionFactory(...)
    cf.setConsumerMaxRate(10);

其他资源

如需了解如何限制消费者速率的工作示例,请参阅 & lt;install-dir> /examples/standard 中的 consumer-rate-limit 示例。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部