3.7.0 版本中全新的 rabbitmqctl
·阅读 2 分钟
从 v3.7.0 Milestone 8 开始,RabbitMQ 将提供一套全新的命令行工具(rabbitmqctl、rabbitmq-plugins 等),它们经过了彻底的重构。我们在这个项目中有几个目标。
我们希望使用更易于使用的命令行解析器,并生成更有用的帮助和错误消息。
- CLI 工具应当能够通过插件进行扩展:例如管理、联邦(federation)、铲子(shovel)、信任存储(trust store)等插件,都具有旨在由 CLI 工具调用的功能,但以往唯一的方法是使用
rabbitmqctl eval,这不仅容易出错,而且可能存在危险。 - 我们希望在一个真实的项目中尝试使用 Elixir,并让不熟悉 Erlang 的开发者更容易扩展 CLI 功能。
- 我们的 CLI 工具历来缺乏良好的测试覆盖率;新的工具应当(而且确实已经)具备这一点。
- CLI 工具应当能够生成机器友好的格式,无论是 JSON、CSV 还是其他格式;在最初的实现中,并没有为此提供内部基础设施。
- CLI 工具应当像所有插件、客户端库等一样,成为一个独立的存储库。
九个月后,这项实验被宣布成功,并集成到了 RabbitMQ 的发行版中。
请尝试 v3.7.0 Milestone 8 版本,并查看 扩展 CLI 有多简单。
还有一个更长的文档,涵盖了新功能和实现决策。