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 集群来解决这个问题。
相关文章
相关标签/搜索