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 集群来解决这个问题。