哪里可以更改activemq中的预取值

Han*_*ath 7 activemq-classic jms

我阅读了有关的文档prefetch buffer.按照我的理解,如果我将Prefetch值= 1 分配给消费者A.一次将Activemq push 1消息发送给A .once A向activemq发送确认,然后只有activemq将另一条消息发送给A.

我怀疑的是,我需要为消费者分配预取值.

我需要在消费者程序中分配预取值.如果它是正确的,你能用简单的代码解释.

谢谢.

anu*_*ava 10

根据ActiveMQ手册:

ActiveMQ使用预取限制来确定可以在任何时间点将消息流传输给消费者.达到预取限制后,在消费者开始发回消息确认(以指示消息已被处理)之前,不再向消费者分派消息.可以基于每个用户指定实际的预取限制值.

要更改所有使用者类型的预取大小,您将使用类似于以下的连接URI:

tcp://localhost:61616?jms.prefetchPolicy.all=50
Run Code Online (Sandbox Code Playgroud)

要更改仅队列使用者类型的预取大小,您将使用类似于以下的连接URI:

tcp://localhost:61616?jms.prefetchPolicy.queuePrefetch=1
Run Code Online (Sandbox Code Playgroud)

它还可以使用目标选项在每个用户的基础上进行配置.

queue = new ActiveMQQueue("TEST.QUEUE?consumer.prefetchSize=10");
consumer = session.createConsumer(queue);
Run Code Online (Sandbox Code Playgroud)