URI 協定

功能 > URI 協定

ActiveMQ Classic 旨在支援多種不同的拓撲和協定。您使用哪一種取決於您的訊息傳遞需求、服務品質和網路拓撲。

下表描述了 JMS 客戶端可用的不同網路協定,以及您用來啟用此通訊協定的連線 URL 字串。在代理端,還支援其他傳輸。您可以在ActiveMQConnectionFactory 上指定連線 URL(在建構函式中或透過 brokerURL 屬性)。

例如,如果您不想麻煩設定 JNDI 等,而只想建立 JMS 連線,您可以執行如下操作:

ConnectionFactory factory = new ActiveMQConnectionFactory(“tcp://somehost:61616”); Connection connection = factory.createConnection();

協定摘要

協定 範例 描述 伺服器?
VM vm://host:port 客戶端在同一個 JVM 中彼此連線。這確實使用非同步通道和單獨的工作執行緒。您可以使用查詢參數啟用同步傳送,例如 vm://127.0.0.1?async=false
TCP tcp://host:port 客戶端在給定的 URL 連線到代理
SSL ssl://host:port 客戶端在給定的 URL 連線到代理
容錯移轉 failover:(Uri1,Uri2,Uri3,…,UriN) 提供要連線的可能 URI 清單,並隨機選擇一個。如果連線失敗,則傳輸會自動重新連線到另一個 URI  
對等 peer://serviceName 建立給定服務名稱的節點的純對等網路。在對等模式下,沒有伺服器,節點只是自動連線並建立對等網路。serviceName 可讓您將網路彼此分開,例如開發、測試、UAT 和生產。  
探索 discovery://host:port 使用探索來連線到正確通道名稱的可用代理。如果可以找到多個代理,則會隨機選擇一個。如果連線失敗,則會選擇另一個代理(如果可用)  
Zeroconf zeroconf:_activemq.broker.development. 使用Zeroconf來連線到正確 Zeroconf 服務名稱的可用代理。如果可以找到多個代理,則會隨機選擇一個。如果連線失敗,則會選擇另一個代理(如果可用)  
HTTP http://host:port 客戶端使用 HTTP 通道連線到代理,並使用適用於通過防火牆的 XML 承載
UDP udp://host:port 客戶端在給定的 URL 連線到代理  
多播 multicast://host:port 沒有伺服器,但僅適用於發佈/訂閱。一個純粹的對等網路,其中所有流量都進行多播,並在客戶端上執行篩選。  

上面的「伺服器」欄表示是否可以在 ActiveMQ Classic 代理傳輸連接器中使用協定。以上所有協定都可以在 JMS 客戶端中使用,以連線到訊息傳遞架構;只有指示的協定可以在代理端傳輸連接器中使用。

連線到 ActiveMQ Classic 代理時,它可能位於您 JVM 內部的本機或位於其他某處的遠端機器上。如果您想在您的 JVM 內部啟用 ActiveMQ Classic 的部署,您可以在ActiveMQConnectionFactory上啟用 useEmbeddedBroker 屬性。

請參閱拓撲概述,以了解如何在許多不同的拓撲中使用 ActiveMQ Classic,以滿足您的訊息傳遞需求。

指定要連線的多個 URL

如果您想要完全的 HA 以提供容錯移轉和自動重新連線,您可以使用 failover: 前綴

failover:(tcp://foo:61699,tcp://bar:61617,tcp://whatnot:61698)

有關更多詳細資訊,請參閱設定傳輸

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