8.3. 处理快速消费者

快速消费者可以像使用它们一样快速处理消息。如果您确信消息传递系统中的使用者速度快,请考虑将窗口大小设置为 -1。将窗口大小设置为此值可在客户端上实现未绑定的消息缓冲。不过,请谨慎使用此设置。如果使用者无法在接收消息时尽快处理消息,客户端上的内存可能会溢出。

为快速使用者设置窗口大小

以下示例演示了如何使用消息快速使用者 AMQ 核心协议 JMS 客户端将窗口大小设置为 -1。

流程

  • 如果客户端使用 JNDI 来实例化其连接工厂,在连接字符串 URL 中包括 consumerWindowSize 参数。将 URL 存储在 JNDI 上下文环境中。以下示例使用 jndi.properties 文件存储 URL。

    java.naming.factory.initial=org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory
    connectionFactory.myConnectionFactory=tcp://localhost:61616?consumerWindowSize=-1
  • 如果客户端不使用 JNDI 来实例化其连接工厂,请将值传递给 ActiveMQConnectionFactory.setConsumerWindowSize()

    ConnectionFactory cf =  ActiveMQJMSClient.createConnectionFactory(...)
    cf.setConsumerWindowSize(-1);