rabbitMQ 集群 VS 联邦 VS 铲子
Posted
技术标签:
【中文标题】rabbitMQ 集群 VS 联邦 VS 铲子【英文标题】:rabbitMQ clustering VS federation VS shovel 【发布时间】:2014-06-27 06:51:15 【问题描述】:我正在不同位置的机器上设置类似“rabbitMQ 集群”的东西,这对 RabbitMQ 集群来说并不好(因为它需要与单个位置的机器一起工作);
所以我在看rabbitMQ Federation,但它是一个节点的定向网络,如果第一个节点宕机,它会自动继续写入下一个节点吗?
我的目标是即使某些节点已关闭,但机器位于不同位置,日志/数据仍能流过
( 我们可以使用rabbitMQ Federation,让它双向吗? 比如我们有node1和node2,设置node1既是node2的上游又是下游,node2也是node1的上游和下游。所以这就像一个集群,但可以与不同位置的机器一起工作 )
【问题讨论】:
【参考方案1】:如果第一个节点宕机了,它会自动继续写入下一个节点吗?
您可以配置 DNS 或负载平衡器并配置规则以重定向流量。 例如,如果您配置一个负载均衡器,您可以使用它的 IP 来配置上游 ip,这样您就可以添加或删除您想要的所有节点。
我们可以使用rabbitMQ Federation,让它双向吗?
是的,但你可以读到here:
你可以有一个循环消息
您可以使用max_hops=1
避免循环消息,请阅读here 了解更多信息
如果您只想在代理之间复制消息,您的架构也可以使用铲子实现。
铲子插件支持多broker连接为:
[ "amqp://fred:secret@host1.domain/my_vhost"
, "amqp://john:secret@host2.domain/my_vhost"
]
如果你能读到here
如果主机被省略(在一般的 AMQP URI 中无效),铲子使用直接连接到运行它的代理。这样可以避免使用网络堆栈。
希望对你有用。
【讨论】:
以上是关于rabbitMQ 集群 VS 联邦 VS 铲子的主要内容,如果未能解决你的问题,请参考以下文章
RabbitMQ---集群,Haproxy+Keepalive 实现高可用负载均衡,Federation Exchange和Federation Queue