探索

功能 > 探索

探索代理程式

ActiveMQ Classic 使用稱為 探索代理程式 的抽象概念,來偵測遠端服務,例如遠端訊息代理伺服器。我們可以利用探索功能,讓 JMS 用戶端自動偵測要連線的訊息代理伺服器,或是提供訊息代理伺服器網路

目前有兩種探索代理程式。

多點傳播

探索傳輸使用我們自己的多點傳播式探索代理程式來尋找要連線的 URI 清單。

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

Zeroconf

ZeroConf 是一種標準探索規格,使用 UDP / 多點傳播來探索裝置。它被 Apple 的 Rendezvous 服務所使用。
我們使用 jmDNS 專案來實作 Zeroconf 規格以偵測服務。這表示其他基於 Zeroconf 的
工具可以與此探索代理程式一起使用。

若要在訊息代理伺服器中設定探索,您應該使用 XML 設定。以下是使用探索來建立訊息代理伺服器網路範例

如果您有一個或多個已啟用 Zeroconf 探索的訊息代理伺服器正在執行,您可以使用 brokerURL 連線到訊息代理伺服器

zeroconf:_activemq_development.

這將使用 Zeroconf 尋找可用的訊息代理伺服器,並隨機選擇一個,如果有多個訊息代理伺服器正在執行,則會在斷線時自動故障轉移。

LDAP 探索

ActiveMQ Classic 支援使用 LDAP 來探索訊息代理伺服器。

如需更多詳細資訊,請參閱LDAP 訊息代理伺服器探索機制

試用探索

如果您在不同的 shell 中執行下列命令,您將會有 2 個自動探索彼此的訊息代理伺服器和 2 個使用固定 URL 的用戶端

maven -o server -Dconfig=src/test/org/activemq/usecases/receiver-zeroconf.xml
maven -o server -Dconfig=src/test/org/activemq/usecases/sender-zeroconf.xml
maven -o consumer -Durl=tcp://127.0.0.1:62002
maven -o producer -Durl=tcp://127.0.0.1:62001

如果您希望用戶端使用探索來尋找訊息代理伺服器,請執行上述兩個 'server' 陳述式中的其中一個 (或兩個),然後如下執行 producer/consumer

maven -o consumer -Durl=zeroconf:_activemq.broker.development.
maven -o producer  -Durl=zeroconf:_activemq.broker.development.

傳輸 URL 的格式為

zeroconf:<serviceName>

其中 <serviceName> 是 Zeroconf 服務名稱;它似乎以底線 (_) 開頭,且必須以句點 (.) 結尾。因此,我們可以利用此服務名稱來區分開發、UAT 和生產訊息代理伺服器,或將它們分組到網域等。

探索與安全性

當使用訊息代理伺服器的自動探索時,攻擊者可能會將自己偽裝成合法的訊息代理伺服器,並以此方式攔截和/或操縱所有透過它傳送的訊息。

在自動探索中是否有安全性設定可以避免這種情況?

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