RabbitMQ集群 - 更新负载平衡集群中的节点的最佳实践?

Bra*_*rks 5 haproxy rabbitmq

简介:更新负载平衡群集中的节点的最佳做法是什么?

我们在ha代理负载均衡器后面使用RabbitMQ Cluster来支持我们的客户轻松集群,如RabbitMQ文档中所建议的那样

尽管文档提出了这一点,但它们没有描述从群集中删除节点以进行升级的最佳方法,并将其重新放入.

这是我认为我们应该使用的过程:

  1. 通过rabbitmqctl stop_app在节点本身上运行来从群集中删除节点,并等待它关闭
  2. 在haproxy中将节点置于maint模式
  3. 执行maint工作
  4. 将节点加入群集,确认它重新加入并同步.
  5. 在haproxy中从maint模式中删除节点

但我已经建议我们首先从ha代理中删除它,基本上交换上面的步骤1和2

以下是其他团队成员建议的流程:

  1. 在haproxy中将节点置于maint模式
  2. 通过rabbitmqctl stop_app在节点本身上运行来从群集中删除节点,并等待它关闭
  3. 执行maint工作
  4. 将节点加入群集,确认它重新加入并同步.
  5. 在haproxy中从maint模式中删除节点

这是最好的方法吗?

Nan*_*nne 2

对我来说,最明显的方法是告诉您 haproxy 您想要停止向服务器发送请求,然后停止服务器本身,而不是相反。

我很好奇为什么你要先停止服务器,然后将其放入 maint ?如果您这样做,一些请求将在您知道节点消失之前发送到您的节点。我相信你可以设置 haproxy 来重新发送那些未接来电;因此,最好的情况是您有一些请求会慢一些,最坏的情况是您有一些丢失的请求。

我认为首先将其设置为维护模式没有具体的缺点,因此我个人不会考虑其他选项。