配置端口
端口配置選項
一般最常用的URI是連接到代理的端口URI,通常為TCP或VM端口。
要注意空格:所有的URI都是基於java.net.URI類,它並不允許使用空格。所以,如果你使用failover:或者static:URI,在逗號內不要留有空白。
虛擬機端口
虛擬機端口允許客戶可以在虛擬機內部互相連接而不用使用其上的網絡連接。這個連接不是socket連接,而是直接使用方法調用來增加嵌入式消息系統的高性能。
使用虛擬機的第一個客戶將用來引導一個嵌入的代理,隨后連接將附到到相同的代理。一旦連接到代理的所用虛擬機被關閉則嵌入式代理也將被關閉。
更多的信息請查閱虛擬機端口參考。
TCP端口
TCP端口允許客戶使用TCP socket連接一個遠程ActiveMQ。
更多的信息請查閱TCP端口參考。
NIO端口
除去使用新的I/O包其余的和TCP端口一樣,這也許會提供更好的性能。注意java NIO包不要和IBM的AIO4J包引起沖突。
從TCP切換到NIO只需要簡單的更改URI配置方案,下面是一個定義NIO的XML配置文件。
<broker>
...
<transportConnectors>
<transportConnector name="nio" uri="nio://0.0.0.0:61616"/>
</<transportConnectors>
...
</broker>
SSL端口
允許你通過TCP使用SSL(通過網絡通道的信息進行加密)。
更多的信息請查閱SSL端口參考。
NIO SSL端口
通過NIO實現SSL傳輸。這允許你使用一個代理實例可以連接大量的SSL客戶端。這只是服務端端口選項。
<broker>
...
<transportConnectors>
<transportConnector name="nio+ssl" uri="nio+ssl://0.0.0.0:61616"/>
</<transportConnectors>
...
</broker>
在客戶端使用nio+ssl端口URL會初始化常規SSL端口。
對等網絡端口
這個端口提供用戶使用ActiveMQ的端對端網絡。其實它使用虛擬機端口建立本地代理的連接,本地代理建立網絡配置連接到另一端的嵌入代理。
更多信息請參閱對等網絡端口參考。
UDP端口
允許你通過UDP進行交談。
更多的信息請查看UIP端口參考。
組播端口
允許你通過組播進行交談。
更多的信息請參閱組播端口參考。
HTTP和HTTPS端口
允許ActiveMQ客戶和代理通過HTTP建立通道。如果客戶不是JMS,你也許想知道REST或者Ajax支持。
更多的信息請查閱HTTP和HTTPS端口參考。
WebSockets端口
這個端口使用HTML5WebSockets來和代理交互信息。更多的信息請查閱WebSockets端口參考。
通用URI
你可以通過URI語法進行其他特性的一些配置。
連接配置URI
任何ActiveMQ JMS連接可以使用URL來進行配置或者直接在ActiveMQConnectionFactory或者ActiveMQConnection對象中設置屬性。
目標選項
你可以使用URI語法來配置不同的目標選項。
代理配置URI
你能使用代理配置URI來配置嵌入式代理,也可以在java代碼中使用BrokerFactory的helper,或者使用activemq外殼腳本。更多的信息請查閱如何運行代理。
配置Wire格式
通過網絡端口傳輸編組消息推薦使用OpenWire格式,這也是可配置的。
詳細信息請參閱配置wire格式。
高級協議URI
通過URI可以配置更高級的協議。
故障切換端口
故障切換端口層從新連接優先其他端口。這曾經用於ActiveMQ 3。它的配置語法允許你指定許多復合的URI。故障切換端口隨機選擇一個復合URI來嘗試建立連接。如果不成功,則從URI列表中挑一個建立新的連接。
詳細的信息請查閱故障切換端口參考。
扇出端口
扇出端口層在其他端口的頂部從新連接並復制邏輯。它用於復制命令到多個代理中。
更多的信息請參閱扇出端口參考。
使用發現
通常使用TCP端口的時候你想查找並定位到有效的代理上。從使用、說法和組播上來說是不同的。使用TCP作為主要的通信方式而不是組播,發現功能純粹用於發現代理的位置。
發現端口
發現端口工作起來就像可靠連接的端口一樣,只是它使用發現代理來定位要連接的URI列表。
更多信息請查看發現端口參考。
零配置端口
零配置端口可以提供發現並向發現端口一樣工作,但是它是基於發現機制使用的是自己的組播方式(這允許你配置精確的組播地址和端口),
更多的信息請查看零配置端口參考。
服務器端選項
這有許多選項組成,它們用於更改服務器端的行為。
屬性名 |
缺省值 |
描述 |
uri |
null |
和端口進行綁定 |
name |
null |
端口連接實例名 |
discoveryURI |
null |
如果設置了,客戶連接的組播發現地址用於發現代理。 |
enableStatusMonitor |
false |
監視連接來決定是否要阻塞。 |
updateClusterClients |
false |
啟用將更新更改代理群的客戶連接 |
rebalanceClusterClients |
false |
通過群拓撲更改自動從新平衡客戶端。 |
updateClusterClientsOnRemove |
false |
如果代理從群中刪除將更新代理。 |
updateClusterFilter |
null |
逗號分隔的正則表達式,名稱匹配模板的代理將會進行客戶更新。 |
注意:紅色的屬性只對版本5.4有效。
配置示例:
<broker>
...
<transportConnectors>
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616"enableStatusMonitor="true"/>
</<transportConnectors>
...
</broker>