ActiveMQ 目前支持的transport 有:網絡
- VM Transport、TCP Transport、SSLTransport、Peer Transport、
- UDP Transport、Multicast Transport、HTTP andHTTPS Transport、
- Failover Transport、Fanout Transport、DiscoveryTransport、ZeroConf Transport 等。
如下簡單介紹其中的幾種,更多請參考Apache 官方文檔。socket
- VM Transport
- VM transport 容許在VM 內部通訊,
- 這時候採用的鏈接不是socket 鏈接,
- TCP Transport
- TCP transport 容許客戶端經過TCP socket 鏈接到遠程的broker。
- Failover Transport
- Failover Transport 是一種從新鏈接的機制,
- 它工做於其它transport 的上層,
- 用於創建可靠的傳輸。
- 它的配置語法容許制定任意多個複合的URI。
- Failover transport 會自動選擇其中的一個URI 來嘗試創建鏈接。
- 若是沒有成功,那麼會選擇一個其它的URI 來創建一個新的鏈接。
- Discovery transport
- Discovery transport 是可靠的tranport。
- 它使用Discovery transport 來定位用來鏈接的URI 列表
在使用Failover Transport 或Discovery transport 等可以自動重連的transport 的時候,文檔
- 須要注意的是:
- 設想有兩個broker,
- 它們都啓用AMQ MessageStore 做爲持久化存儲,
- 有一個producer 和一個consumer 鏈接到某個queue。
- 當因其中一個broker 失效時而切換到另外一個 broker 的時候,
- 若是失效的broker的queue 中還有未被consumer 消費的消息,
- 那麼這個queue 裏的消息仍然滯留在失效broker 的中,
- 直到失效的broker 被修復並從新切換回這個被修復的broker 後,
- 以前被保留的消息纔會被consumer 消費掉。
- 若是被處理的消息有時序限制,
- 另外也能夠經過ActiveMQ 集羣來解決這個問題。