RabbitMQ 3.8.8 已经发布。RabbitMQ 是一个 Advanced Message Queuing Protocol(AMQP)的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 编写而成,因此它也继承了这些优点。
此版本最大亮点是引入了一种新的节点操作模式,称为维护模式。
当将节点放下进行维护并处于维护模式时,该节点将无法用于服务客户端流量,并且将尝试尽可能实际地转移其职责使其安全。当前,这涉及以下步骤:
- 挂起所有客户端连接侦听器(不接受新的客户端连接)
- 关闭所有现有的客户端连接:应用程序应重新连接到其它节点并恢复
- 所有经典镜像队列的主副本托管在传输目标节点上
- 所有仲裁队列的主要副本托管在传输目标节点上,并阻止它们参与随后触发的 Raft 选举
- 将节点标记为关闭以进行维护
- 此时,由于节点已经转移了大部分职责,因此节点关闭的破坏性将最小
不管队列类型和使用的队列主定位器策略如何,都不会考虑将处于维护模式的节点用于新的主队列副本放置。处于维护模式的节点应在短时间内关闭、升级或重新配置,然后重新启动。节点不应长时间在此模式下运行。
操作员可以使用一系列新的 CLI 命令显式打开和关闭该模式。详情查看发布说明。