RabbitMQ 3.7.0 中全新的 rabbitmqctl
·阅读 2 分钟
从 v3.7.0 里程碑 8 开始,RabbitMQ 提供了一套全新的 CLI 工具(rabbitmqctl
、rabbitmq-plugins
等),这些工具从头开始进行了重构。我们在开展这个项目时有几个目标。
我们希望使用更人性化的命令行解析器,并生成更有用的帮助和错误消息。
- CLI 工具应该可以从插件扩展:诸如管理、联邦、转储、信任存储等插件都有其功能,这些功能应该由 CLI 工具调用,但唯一的方法是
rabbitmqctl eval
,这很容易出错且存在危险。 - 我们想在实际项目中尝试使用 Elixir,并让 Erlang 新手更容易扩展 CLI 功能。
- 从历史上看,我们的 CLI 工具没有良好的测试覆盖率;新的工具应该(并且确实)具备良好的测试覆盖率。
- CLI 工具应该能够生成机器友好的格式,无论是 JSON、CSV 还是其他格式;在原始实现中没有用于执行此操作的内部基础设施。
- CLI 工具应该像所有插件、客户端库等一样,成为一个独立的存储库。
九个月后,实验被宣布成功,并集成到 RabbitMQ 分发版中。
请尝试 v3.7.0 里程碑 8,并查看 扩展 CLI 的简易性。
还有一个 较长的文档,其中涵盖了新功能和实现决策。