如何启用异步发送
常见问题 > 使用 Apache ActiveMQ Classic > 如何启用异步发送
ActiveMQ Classic 的默认设置是,所有在事务外部的持久消息都会同步发送到代理。这意味着 send 方法会被阻塞,直到消息被代理接收并写入磁盘,然后返回响应给客户端,send() 解阻塞并成功,或者如果发送无法完成(例如由于安全异常),则抛出 JMSException。对于在事务中发送的持久消息,只有提交是同步的,因为如果提交成功,则意味着事务中的所有发送和确认都已成功。
出于性能原因,您可能希望以尽可能快的速度将消息流式传输到代理,即使您使用的是持久消息。因此,您可以使用以下选项之一启用持久消息的**异步发送**
- 在 ActiveMQConnectionFactory 上设置 useAsyncSend 属性
- 在连接到代理时使用 URI 设置属性
tcp://127.0.0.1:61616?jms.useAsyncSend=true