10.2. 制作者流控制
与消费者基于窗口的流控制类似,AMQ Broker 可以限制从制作者发送到代理的数据量,以防止代理占用太多数据。在制作者时,窗口大小决定随时可处于飞机中的字节数。
10.2.1. 设置 Producer 窗口大小
窗口大小以学分为基础在代理与制作者之间协商,窗口中的每字节一个学分。由于消息被发送并且使用信贷,生产者必须请求,并且获得代理的信贷,然后才能发送更多消息。制作者和代理间的信用交换规定了它们之间的数据流。
设置窗口大小
以下示例演示了如何在使用 Core JMS 客户端时将制作者窗口大小设置为 1024
字节。
步骤
设置制作者窗口大小。
如果核心 JMS 客户端使用 JNDI 来实例化其连接工厂,请将
producerWindowSize
参数包含为连接字符串 URL 的一部分。将 URL 存储在 JNDI 上下文环境中。以下示例使用jndi.properties
文件来存储 URL。java.naming.factory.initial=org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory java.naming.provider.url=tcp://localhost:61616?producerWindowSize=1024
如果核心 JMS 客户端不使用 JNDI 来实例化其连接工厂,请将值传递到
ActiveMQConnectionFactory.setProducerWindowSize()
。ConnectionFactory cf = ActiveMQJMSClient.createConnectionFactory(...) cf.setProducerWindowSize(1024);