如何啟用非同步傳送

 常見問題 > 使用 Apache ActiveMQ Classic > 如何啟用非同步傳送

ActiveMQ Classic 的預設設定是,所有在交易之外的持久訊息都會同步傳送到代理程式。這表示 send 方法會被阻塞,直到訊息被代理程式接收、然後寫入磁碟 - 然後將回覆傳回給用戶端,並且 send() 會成功解除阻塞,或者在傳送無法完成時 (例如,由於安全性例外) 拋出 JMSException。在交易中傳送持久訊息的情況下,只有 commit 是同步的,因為如果 commit 成功,則表示交易中的所有傳送和確認都成功。

為了效能考量,您可能希望盡可能快地將訊息串流到代理程式,即使您正在使用持久訊息。因此,您可以使用以下選項之一啟用持久訊息的非同步傳送

  • 在 ActiveMQConnectionFactory 上設定 useAsyncSend 屬性
  • 當您連線到代理程式時,使用 URI 設定屬性
tcp://127.0.0.1:61616?jms.useAsyncSend=true

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛標誌和 Apache ActiveMQ 專案標誌是 The Apache Software Foundation 的商標。Copyright © 2024, The Apache Software Foundation。依據Apache License 2.0授權。