ActiveMQ-inAction-Transport-學習筆記

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 集羣來解決這個問題。
相關文章
相關標籤/搜索