Postgres SQL格式化程序
rmq-cluster-rebalance的Python项目详细描述
用于在rabbitmq集群中重新平衡队列的cli应用程序
安装
pip install rmq-cluster-rebalance
为什么?
当您在rabbitmq中指定queue master location时 值为min-masters时,rabbitmq将尝试平衡分布 集群中队列的主位置。但是,当您重新启动 具有ha队列的集群中的rabbitmq节点,该节点上队列的主位置 节点将移动到其他节点。如果有足够多这样的事情,那就看你的医管局了 策略,您可能会导致具有主位置的队列分布不均匀 在少数节点上。在这种情况下,集群中的节点可能无法使用 同样地,具有更高的CPU、内存、磁盘和网络利用率的节点 携带较大数量的主节点。
将节点添加到集群时,跨节点重新平衡队列也很有用 没有queue_master_locator配置集(使用 client-local),无论您是否使用ha队列。
方法论
应用程序使用rabbitmq管理ui遍历每个队列 在群集中。队列被检查,并且名为^{tt4}的策略$ 使用队列中使用的现有策略配置创建 添加或替换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)