PostgreSQL SQL格式化工具
项目描述
CLI应用程序,用于在RabbitMQ集群中重新平衡队列
安装
pip install rmq-cluster-rebalance
为什么?
当您在RabbitMQ中指定队列主位置为min-masters时,RabbitMQ将尝试平衡集群中队列主位置的分布。然而,当您在一个具有HA队列的集群中重新启动RabbitMQ节点时,该节点上的队列主位置将移动到另一个节点。鉴于足够此类事件以及您的高可用性策略,您可能会得到一个队列主位置分布不均的情况,其中少数节点上有主位置。在这种情况下,集群中的节点可能无法均匀利用,节点上的CPU、内存、磁盘和网络利用率可能会更高。
在节点间重新平衡队列还可以在将节点添加到没有设置queue_master_locator配置(使用默认值client-local)的集群时有用,无论您是否使用HA队列。
方法
应用程序使用RabbitMQ管理UI遍历集群中的每个队列。检查队列后,创建一个名为 rmq-cluster-rebalance 的策略,使用队列现有策略配置,并添加或替换 ha-mode,将其设置为 all,并删除已设置的 ha-params 和 queue-master-locator。一旦队列在集群中所有节点上完全复制,将用一个新的策略替换 rmq-cluster-rebalance 策略,该策略将 ha-mode 设置为 nodes,并在 ha-params 中仅指定新的主节点。当队列完全移动后,将删除该策略,应用程序将移动到下一个队列。
节点按照简单的轮询顺序分配。如果队列已经在要分配给它的节点上运行,则将其跳过,并且不会在该队列上执行任何操作。
警告
此方法在生产环境中使用应该是安全的,不会中断发布者或消费者。虽然对我来说没有问题,但您的使用效果可能会有所不同。
此应用程序需要相对较新的RabbitMQ版本,并且仅使用 3.7.16 进行了测试。
CLI使用方法
usage: rmq-cluster-rebalance [-h] [-u USERNAME] [-p PASSWORD] [--vhost VHOST]
[-L LOG_FILE] [-v] [--debug] [--version]
[URL]
Rebalances the queues in a RabbitMQ cluster
positional arguments:
URL The RabbitMQ Management API base URL (default:
http://localhost:15672)
optional arguments:
-h, --help show this help message and exit
-u USERNAME, --username USERNAME
The RabbitMQ Management API username (default: guest)
-p PASSWORD, --password PASSWORD
The RabbitMQ Management API password (default: guest)
--vhost VHOST The RabbitMQ VHost to use (default: /)
--version output version information, then exit
Logging options:
-L LOG_FILE, --log-file LOG_FILE
Log to the specified filename (default: STDOUT)
-v, --verbose Increase output verbosity (default: False)
--debug Extra verbose debug logging (default: False)
项目详情
rmq-cluster-rebalance-1.0.0.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fabe3e65fe0826077e597ab67a2bb5aa7b2c1899dd7f89cd68f094893624ca24 |
|
MD5 | c268f2213889196d429de7a0d2b028ba |
|
BLAKE2b-256 | 5a880344a86d5c7b922503ab8098d8ad12ab70997c2d4fce2105753085dbd033 |