傳送訊息有多輕量

 常見問題 > 使用 Apache ActiveMQ Classic > 傳送訊息有多輕量

適用於 ActiveMQ Classic 3.x/4.x

這取決於情況。

如果您在 JMS 事務中,並使用非持久性訊息傳遞,那麼它的速度相當快且輕量 – 通常只會阻塞直到訊息進入 socket 緩衝區。但是,如果您使用持久性訊息傳遞且不使用 JMS 事務,那麼預設情況下,我們將與代理程式執行阻塞式的請求-回應,以確保訊息在調用 send() 完成時已持久保存到磁碟上 – 這速度相當慢。

但是,如果您真的希望它非常輕量且快速,請在您的 JMS 連線上啟用異步傳送

如果您真的需要低延遲,例如在 GUI 線程或高效能伺服器中,您可能需要啟用異步傳送。異步傳送唯一的缺點是,如果傳送因任何原因失敗(通常是安全性異常或某些傳輸失敗),則不會在傳送者線程中拋出異常,因為所有工作都是異步完成的,但是您的 ErrorListener 會收到通知。

(如果您使用可靠的傳輸,則可以讓 JMS 用戶端處理傳輸錯誤,並斷開連線並重新連線到另一個代理程式,為您處理自動重新連線。)

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛標誌和 Apache ActiveMQ 專案標誌是 Apache 軟體基金會的商標。版權所有 © 2024,Apache 軟體基金會。依照 Apache License 2.0 授權。