Postgres SQL格式化程序

rmq-cluster-rebalance的Python项目详细描述


用于在rabbitmq集群中重新平衡队列的cli应用程序

Package VersionBuild StatusCode CoverageBSD

安装

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)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何创建Restful服务并将其部署到OSGi容器?   java如何获取用户在EditText中输入的时间并从中扣除5小时30分钟?   java用户无法注销firebase 安卓   java Undertow始终将字符集添加到ContentType头,即使它不是文本MIME类型   java LocalBroadcastManager未正确接收消息   foreach在Java中有没有比For循环更好的方法可以灵活地遍历集合?   java如何在安卓上移动球   在OSGi下的Log4j中使所有记录器异步时,java ClassNotFoundException   java未知输入字节长度转换为int   java测试工厂在使用前缀命名时抛出NPE   对象的副本(JAVA)   java SP20310:无法打开文件。sql   java Spring安全性仅为一条路径添加安全性   java在idea中获取菱形运算符的编译错误