管理、监控和统计
长期以来,RabbitMQ 内置的管理和监控功能一直依赖于 rabbitmqctl。虽然它对于管理来说是一个合理的工具(假设你喜欢命令行),但 rabbitmqctl 从来没有作为一个强大的监控工具。所以我们将构建一个更好的东西。
当然,很多人都不喜欢命令行工具,所以很多人构建了管理 RabbitMQ 的替代方法。 Alice / Wonderland 和 Spring AMQP 是两个最突出的例子。但是,没有太多标准化,而且人们并不总是觉得通过 epmd 与 Rabbit 交谈很方便。所以我们将构建一些更容易的东西。
考虑到这一点,我想宣布 RabbitMQ 管理 的存在。这是一个插件,通过 RESTful 接口提供管理和监控功能,以及一个 Web GUI。可以把它看作是超级 Alice,也是人们想要构建的任何其他工具的集成点。
因此,RabbitMQ 管理将允许更轻松的管理和更好的监控。有多好呢?作为即将发布的 Rabbit 版本的一部分,我们在代理中添加了一个统计收集功能。这可以在每通道/队列/交换的基础上统计消息的发布、路由、传递和确认,因此我们可以确定哪些通道发布速度快或消费速度慢、哪些队列从哪些交换机发布、哪些连接和主机最繁忙,等等。
当然,做所有这些额外的簿记是有代价的;当统计收集打开时,服务器的运行速度可能会慢 10% 左右(假设它是 CPU 密集型;通常这意味着处理瞬时消息。如果它是 IO 密集型,性能影响可能会更小)。目前,当安装管理插件时,统计收集会自动打开,但我们将使其可配置。
在此,我想添加一个警告:它目前处于一个非常早期的开发阶段,实际上不应该被用于除了实验和玩耍以外的任何目的。REST API 会发生变化,UI 会发生变化,插件可能会使你的服务器崩溃,而 TODO 目前几乎是可笑地长。但希望这能让大家了解我们打算做什么。