3.7.0 版本中全新的 rabbitmqctl
·阅读 2 分钟
从 v3.7.0 Milestone 8 开始,RabbitMQ 将提供一套全新的命令行工具(rabbitmqctl、rabbitmq-plugins 等),它们经过了彻底的重构。我们在这个项目中有几个目标。
我们希望使用更易于使用的命令行解析器,并生成更有用的帮助和错误消息。
- CLI 工具应可通过插件进行扩展:诸如 management、federation、shovel、trust store 等插件都包含应由 CLI 工具调用的功能,但唯一的方法是使用
rabbitmqctl eval,这容易出错且可能存在危险。 - 我们希望在一个实际项目中尝试 Elixir,并使熟悉 Erlang 的新开发者更容易扩展 CLI 功能。
- 我们过去的 CLI 工具测试覆盖率不高;新的工具应该(并且也做到了)。
- CLI 工具应能够生成机器可读的格式,无论是 JSON、CSV 还是其他格式;原始实现中没有为此提供内部基础设施。
- CLI 工具应像所有插件、客户端库等一样,拥有自己的独立代码库。
九个月后,该实验被宣布成功,并已集成到 RabbitMQ 发行版中。
请尝试 v3.7.0 Milestone 8,并看看 如何轻松扩展 CLI。
还有一份 更长的文档,涵盖了新功能和实现决策。