自動

連線能力 > 協定 > 自動

從 5.13.0 版本開始,ActiveMQ Classic 支援線路格式協定偵測。OpenWire、STOMP、AMQP 和 MQTT 可以自動偵測。這允許一個傳輸方式被所有 4 種用戶端類型共用。

在 TCP 上啟用自動

若要設定 ActiveMQ Classic 在 TCP 連線上自動線路格式偵測,請使用 auto 傳輸前綴。例如,在您的 XML 檔案中加入以下傳輸設定

<transportConnector name="auto" uri="auto://127.0.0.1:5671"/>

在 SSL 上啟用自動

若要設定 ActiveMQ Classic 在 SSL 連線上自動線路格式偵測,請使用 auto+ssl 傳輸前綴。例如,在您的 XML 檔案中加入以下傳輸設定

<transportConnector name="auto+ssl" uri="auto+ssl://127.0.0.1:5671"/>
  • 有關在 ActiveMQ Classic 中使用 SSL 的更多詳細資訊,請參閱以下文章 (如何使用 SSL)。

在 NIO 上啟用自動

若要設定 ActiveMQ Classic 在 NIO TCP 連線上自動線路格式偵測,請使用 auto+nio 傳輸前綴。例如,在您的 XML 檔案中加入以下傳輸設定

<transportConnector name="auto+nio" uri="auto+nio://127.0.0.1:5671"/>

在 NIO SSL 上啟用自動

若要設定 ActiveMQ Classic 在 NIO SSL 連線上自動線路格式偵測,請使用 auto+nio+ssl 傳輸前綴。例如,在您的 XML 檔案中加入以下傳輸設定

<transportConnector name="auto+nio+ssl" uri="auto+nio+ssl://127.0.0.1:5671"/>

設定自動傳輸選項

有一些設定選項可以設定。

參數名稱 預設值 描述
protocolDetectionTimeOut 30000 連線逾時前的時間,以毫秒為單位。這類似於 maxInactivityDuration。如果用戶端建立連線,但沒有傳送資料或足夠的資料來偵測協定,則執行緒會坐等更多資料從 Socket 傳入。這將讓代理程式在一段時間後,如果連線沒有完成協定初始化,則終止連線。預設值為 30 秒。設定預設值為 <= 0 可停用此功能。
maxConnectionThreadPoolSize MAX_INT 此選項允許設定處理連線嘗試的執行緒池的最大大小。如果同時有許多不同的用戶端嘗試連線,降低此數值可以協助防止代理程式耗盡執行緒。預設值為 MAX_INT,表示關閉此功能。

以下範例設定傳輸的最大協定偵測時間為 5 秒

<transportConnector name="auto" uri="auto://127.0.0.1:5671?protocolDetectionTimeOut=5000"/>

設定線路格式

OpenWire 是 ActiveMQ Classic 使用的預設線路格式。它為高速訊息傳遞提供高效的二進位格式。OpenWire 選項可以在 JMS 用戶端的連線 URI 字串或代理程式的傳輸綁定 URI 上設定。

參數前綴 描述
wireFormat. 將選項應用於所有線路格式。
wireFormat.default. 將選項應用於預設格式,即 OpenWire。
wireFormat.stomp. 將選項應用於 STOMP 線路格式。
wireFormat.amqp. 將選項應用於 AMQP 線路格式。
wireFormat.mqtt. 將選項應用於 MQTT 線路格式。

以下是將屬性應用於所有格式的範例

<transportConnector name="auto" uri="auto://127.0.0.1:5671?wireFormat.maxFrameSize=1000"/>

以下是僅應用於 OpenWire 的屬性範例

<transportConnector name="auto" uri="auto://127.0.0.1:5671?wireFormat.default.maxFrameSize=1000"/>

設定啟用的線路協定

預設情況下,所有線路協定都可用。 可以設定只啟用特定格式,方法是設定屬性 auto.protocols.

描述
default 啟用 OpenWire
amqp 啟用 AMQP 格式
stomp 啟用 STOMP 格式
mqtt 啟用 MQTT 格式

以下範例顯示僅啟用 OpenWire 和 STOMP

<transportConnector name="auto" uri="auto://127.0.0.1:5671?auto.protocols=default,stomp"/>

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