ActiveMQ Classic 連接 URI

使用 ActiveMQ Classic > 設定傳輸 > ActiveMQ Classic 連接 URI

傳輸設定選項

您可能會使用的第一種 URI 類型之一是傳輸 URI,它用於使用某種傳輸方式連接到代理程式。通常,TCP 或 VM 是您首先會使用的傳輸方式。

請注意空白字元

以下所有 URI 設定均基於 java.net.URI 類,該類不允許使用空白字元。因此,如果您正在使用 failover: 或 static: URI,請勿在 ',' 符號周圍放置任何空白字元。

AUTO 傳輸

從 5.13.0 開始,ActiveMQ Classic 支援透過 TCP、SSL、NIO 和 NIO SSL 自動偵測線路協定。支援 OpenWire、STOMP、AMQP 和 MQTT。如需詳細資訊,請參閱 AUTO 傳輸參考。

VM 傳輸

VM 傳輸允許用戶端在 VM 內部彼此連接,而不會產生網路通訊的額外負擔。使用的連線不是 socket 連線,而是使用直接方法調用來實現高效能的嵌入式訊息傳遞系統。

第一個使用 VM 連線的用戶端將啟動一個嵌入式代理程式。後續的連線將附加到同一個代理程式。一旦所有與代理程式的 VM 連線都已關閉,嵌入式代理程式將自動關閉。

如需更多資訊,請參閱 VM 傳輸參考

AMQP 傳輸

從 5.8.0 開始,ActiveMQ Classic 支援 AMQP。如需詳細資訊,請參閱 AMQP 傳輸參考。

MQTT 傳輸

從 5.6.0 開始,ActiveMQ Classic 也支援 MQTT。它是一種輕量級的發布/訂閱訊息傳輸方式。如需詳細資訊,請參閱 MQTT 傳輸參考。

TCP 傳輸

TCP 傳輸允許用戶端使用 TCP socket 連接遠端的 ActiveMQ Classic。

如需更多資訊,請參閱 TCP 傳輸參考

NIO 傳輸

與 TCP 傳輸相同,只是使用 New I/O (NIO) 套件,它可能會提供更好的效能。Java NIO 套件不應與 IBM 的 AIO4J 套件混淆。

若要從 TCP 切換到 NIO,只需變更 URI 的 scheme 部分。以下範例是在代理程式的 XML 設定檔中定義的。

<broker>
  ...
  <transportConnectors>
    <transportConnector name="nio" uri="nio://0.0.0.0:61616"/>  
  </<transportConnectors>
  ...
</broker>

嘗試在用戶端使用 nio 傳輸 URL 將會實例化常規 TCP 傳輸。如需更多資訊,請參閱 NIO 傳輸參考

SSL 傳輸

這允許您使用 SSL 透過 TCP 通訊。如需更多資訊,請參閱 SSL 傳輸參考

NIO SSL 傳輸

可用性

自 5.6 版起可用

透過 NIO 實作 SSL 傳輸。這允許您將大量 SSL 用戶端連接到單個代理程式執行個體。它僅適用於伺服器端的傳輸選項

<broker>
  ...
  <transportConnectors>
    <transportConnector name="nio+ssl" uri="nio+ssl://0.0.0.0:61616"/>  
  </<transportConnectors>
  ...
</broker>

嘗試在用戶端使用 nio+ssl 傳輸 URL 將會實例化常規 SSL 傳輸。

Peer 傳輸

Peer 傳輸使用 ActiveMQ Classic 提供點對點網路。實際發生的情況是,Peer 傳輸使用 VM 傳輸來建立並連接到本地嵌入式代理程式,但該代理程式會設定為建立與其他對等嵌入式代理程式的網路連線。

如需更多資訊,請參閱 Peer 傳輸參考

UDP 傳輸

這允許您透過 UDP 通訊。

如需更多資訊,請參閱 UDP 傳輸參考

多點傳播傳輸

這允許您透過多點傳播通訊。

如需更多資訊,請參閱 多點傳播傳輸參考

HTTP 和 HTTPS 傳輸

這允許 ActiveMQ Classic 用戶端和代理程式透過 HTTP 通道傳輸。如果用戶端不是 JMS,您可能需要查看 RESTAjax 支援。

如需更多資訊,請參閱 HTTP 和 HTTPs 傳輸參考

WebSockets 傳輸

此傳輸使用新的 HTML5 WebSockets 與代理程式交換訊息。如需更多資訊,請參閱 WebSockets 傳輸參考

Stomp 傳輸

一種可以使用多種語言的純文字傳輸。如需更多詳細資訊,請參閱 Stomp

通用 URI

您可以透過 URI 語法設定其他功能,如下所示…

連線設定 URI

任何 Apache ActiveMQ Classic JMS 連線都可以使用 URL 進行設定,或在 ActiveMQConnectionActiveMQConnectionFactory 物件上明確設定屬性。

如需更多資訊,請參閱 連線設定 URI

目的地選項

您可以使用 目的地選項 設定各種與消費者相關的選項,這允許您使用 URI 語法設定目的地。

代理程式設定 URI

您可以使用 代理程式設定 URI 來設定嵌入式代理程式,可以透過 Java 中的 BrokerFactory 輔助類別或使用 activemq shell 腳本來完成。如需更多詳細資訊,請參閱 如何執行代理程式

設定線路格式

任何涉及將訊息封送至某種網路傳輸(例如 TCP 或 UDP)的傳輸,通常都會使用 OpenWire 格式。這可以設定為自訂訊息在線路上的顯示方式。

如需更多資訊,請參閱 設定線路格式

高階協定 URI

以下高階協定可以透過 URI 設定

容錯移轉傳輸

容錯移轉傳輸會在任何其他傳輸之上增加重新連線邏輯。這是在 ActiveMQ Classic 3 中使用的可靠傳輸。其設定語法允許您指定任意數量的複合 URI。容錯移轉傳輸會隨機選擇其中一個複合 URI,並嘗試建立與之的連線。如果連線不成功或隨後失敗,則會與清單中的其他 URI 之一建立新的連線。

如需更多資訊,請參閱 容錯移轉傳輸參考

扇出傳輸

扇出傳輸會在任何其他傳輸之上增加重新連線和複製邏輯。它用於將命令複製到多個代理程式。

如需更多資訊,請參閱 扇出傳輸參考

使用探索

通常,在使用 TCP 等傳輸時,您會想要使用 探索 來尋找可用的代理程式。這與使用 多點傳播 不同,因為實際的主要通訊是透過 TCP 進行,但多點傳播僅用於探索代理程式的位置。

探索傳輸

探索傳輸的工作方式與可靠傳輸相同,只是它使用探索代理程式來尋找要連接的 URI 清單。

如需更多資訊,請參閱 探索傳輸參考

ZeroConf 傳輸

ZeroConf 傳輸提供 探索,且其工作方式類似於 探索傳輸,但是它不使用我們自己的基於多點傳播的探索機制(允許您設定確切的多點傳播位址和埠等),而是改用 ZeroConf 傳輸。

如需更多資訊,請參閱 ZeroConf 傳輸參考

伺服器端選項

在 ActiveMQ Classic 代理程式設定中,可以使用許多選項來變更伺服器上 TransportConnector 的行為。這些選項為

屬性名稱 預設值 描述
allowLinkStealing false MQTT 傳輸預設啟用此選項。連結竊取是指具有相同 ID(JMS 的 clientID)的兩個或多個連線中,最後一個連線被視為有效連線,而舊的連線則由代理程式關閉。
discoveryURI null 如果設定,則是客戶端連線尋找代理程式的多點傳播探索位址。
enableStatusMonitor false 將監視連線以判斷其是否受阻。
名稱 null TransportConnector 執行個體的名稱。
rebalanceClusterClients false 在拓撲變更時,自動在叢集中重新平衡用戶端。
updateClusterClients false 如果啟用,將在代理程式叢集變更時更新用戶端連線(如果它們使用 failover:// 傳輸)。
updateClusterClientsOnRemove false 如果從叢集中移除代理程式,則會更新用戶端。
updateClusterFilter null 以逗號分隔的正規表示式清單。名稱符合該模式的代理程式將包含在用戶端更新中。
uri null 傳輸的繫結位址。

設定範例

<broker>
   <!-- ... -->

   <transportConnectors>
     <transportConnector name="openwire" uri="tcp://0.0.0.0:61616" enableStatusMonitor="true"/> 
   </<transportConnectors>

   <!-- ... -->
</broker>

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛標誌和 Apache ActiveMQ 專案標誌是 Apache 軟體基金會的商標。Copyright © 2024, The Apache Software Foundation. 根據 Apache License 2.0 授權。