优化确认
概述
ActiveMQ Classic 支持在单个批处理操作中确认一系列消息。此选项默认情况下是禁用的,但在某些情况下可用于提高吞吐量,因为它减少了对代理的负载。考虑在您的性能测试场景中启用它,以查看它是否适用。
使用连接 URI 启用优化确认
cf = new ActiveMQConnectionFactory("tcp://locahost:61616?jms.optimizeAcknowledge=true");
在 ConnectionFactory 级别启用优化确认
((ActiveMQConnectionFactory)connectionFactory).setOptimizeAcknowledge(true);
在连接级别启用优化确认
((ActiveMQConnection)connection).setOptimizeAcknowledge(true);
setOptimizeAcknowledgeTimeOut (5.6)
从 5.4.2 开始,批处理优化确认有一个默认超时,它确保即使消费者速度很慢,确认也能及时进行。在网络速度慢的情况下,超时可能会在达到批处理限制之前到期,从而绕过带宽利用率降低。在 5.6 版本中,可以通过 optimizeAcknowledgeTimeOut 属性配置超时。如上所述,通过连接 URI 或在工厂和连接级别设置。默认值为 300 毫秒,值为 0 表示禁用。