Federation/Shovel | Cluster |
---|---|
各个 Broker 节点之间逻辑分离 | 一个集群形成单一逻辑 Broker。 |
各个 Broker 节点之间可以运行不同版本的 Erlang 和 RabbitMQ | 各个 Broker 节点之间必须运行相同版本的 Erlang 和 RabbitMQ |
各个 Broker 节点之间可以在广域网中相连,当然必须要授予适当的用户和权限 | 各个 Broker 节点之间必须在可信赖的局域网中相连,通过 Erlang 内部节点传递消息,节点间需要有相同的 Erlang cookie |
各个 Broker 节点之间能以任何拓扑逻辑部署,连接可以是单向的或者是双向的 | 所有 Broker 节点都双向连接所有其他节点 |
从 CAP 理论中强调可用性和分区容错性,即 AP | 从 CAP 理论中强调一致性和分区容错性,即 CP |
一个 Broker 中的交换器可以是 Federation 生成的或者是本地的 | 集群中所有 Broker 节点中的交换器都是一样的,要么全有要么全无 |
客户端能看到它连接的 Broker 节点上的队列 | 客户端连接到集群中的任何 Broker 节点都可以看到所有的队列 |