npm 包 amqp-stats 使用教程

阅读时长 6 分钟读完

介绍

amqp-stats 是一个用于与 RabbitMQ 管理 API 进行交互的 npm 包。它允许从 Node.js 应用程序中查询 RabbitMQ 服务器中的队列、交换器等信息,并允许对其执行管理操作。

提供的功能包括:

  • 查看队列的状态信息
  • 查看交换器的状态信息
  • 查看节点的状态信息
  • 查看 vhost 的状态信息
  • 查看消息的状态信息
  • 进行管理员操作,如清理队列

安装

要使用 amqp-stats,可以将其添加到项目的依赖项中:

使用

下面是一个简单的例子,该例子使用 amqp-stats 从 RabbitMQ 服务器检索有关队列的信息:

-- -------------------- ---- -------
----- --------- - ----------------------

----- -------- ------ -
  ----- ----- - ----- ------------------------------------------------
  ----- ------ - ----- ------------------
  ------------------ -------------------
-

----------------------------

连接 RabbitMQ 服务器

连接 RabbitMQ 服务器时,需要提供管理 API 的 URL。例如,如果您的 RabbitMQ 服务器位于 http://rabbitmq.example.com,并且管理 API 启用在默认端口上,则 URL 为 http://rabbitmq.example.com:15672。

在连接服务器之前,请确保您已启用管理插件,并且具有访问管理 API 的凭据。

获取队列信息

要获取有关队列的信息,可以使用 getQueues() 方法。它将返回一个包含所有队列的对象数组。每个对象都包含以下信息:

  • name: 队列名称
  • vhost: vhost 名称
  • messages: 未确认的消息数
  • messages_unacknowledged: 未确认的消息数
  • messages_ready: 等待消费的消息数
  • consumers: 消费者的数量
  • durable: 是否耐用
  • auto_delete: 是否在连接关闭时自动删除
  • node: 存储队列的节点名称
  • policy: 队列策略名称(如果有)

下面是一个使用 getQueues() 方法的例子:

查询交换器信息

要获取有关交换器的信息,可以使用 getExchanges() 方法。它将返回一个包含所有交换器的对象数组。每个对象都包含以下信息:

  • name: 交换器名称
  • vhost: vhost 名称
  • type: 交换器类型
  • durable: 是否耐用
  • auto_delete: 是否在连接关闭时自动删除
  • internal: 是否为内部的
  • policy: 交换器策略名称(如果有)

下面是一个使用 getExchanges() 方法的例子:

查询节点信息

要获取有关节点的信息,可以使用 getNodes() 方法。它将返回一个包含所有节点的对象数组。每个对象都包含以下信息:

  • name: 节点名称
  • disk_free_limit: 指示磁盘上可供使用的空间量
  • fd_used: 用于描述节点中文件描述符的数量
  • mem_used: 表示节点中内存的使用情况
  • sockets_used: 用于描述节点中套接字的数量

下面是一个使用 getNodes() 方法的例子:

查询 vhost 信息

要获取有关 vhost 的信息,可以使用 getVhosts() 方法。它将返回一个包含所有 vhost 的对象数组。每个对象都包含以下信息:

  • name: vhost 名称
  • messages: 未确认的消息数
  • messages_unacknowledged: 未确认的消息数
  • messages_ready: 等待消费的消息数
  • connections: 连接数
  • node: 存储 vhost 的节点名称
  • policy: vhost 策略名称(如果有)

下面是一个使用 getVhosts() 方法的例子:

查询消息信息

要获取有关消息的信息,可以使用 getMessages() 方法。它将返回一个包含所有消息的对象数组。每个对象都包含以下信息:

  • vhost: vhost 名称
  • exchange: 交换器名称
  • routing_key: 指示消息将被发送到哪个队列的路由键
  • message_count: 消息数

下面是一个使用 getMessages() 方法的例子:

进行管理员操作

要执行管理员操作,可以使用如下方法之一:

  • clearQueue() 清理队列
  • deleteQueue() 删除队列
  • publishMessage() 发布消息

这些方法都需要传入要操作的对象的名称和 vhost。例如:

结论

amqp-stats 允许从 Node.js 应用程序中轻松查询 RabbitMQ 服务器的信息。通过使用此库,可以轻松地查看队列、交换器、节点、vhost 和消息的状态信息,并可以执行管理员操作。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedb73fb5cbfe1ea061178d

纠错
反馈