跳至主内容
版本:4.3

运行时参数

概述

虽然 RabbitMQ 的大部分配置都存放在配置文件中,但有些配置项并不适合通过配置文件来管理

  • 如果它们需要在集群中的所有节点上保持一致
  • 如果它们需要在运行时动态变更

RabbitMQ 将这些项称为参数 (parameters)。参数可以通过调用 rabbitmqctl 或通过 HTTP API 进行设置。

参数有两种类型:虚拟主机作用域参数和全局参数。顾名思义,前者绑定到某个虚拟主机,由组件名称、参数名称和参数值组成。

例如,动态 shovel 就是使用运行时参数定义的。它隶属于某个虚拟主机,拥有一个名称,且其组件类型被设置为 "shovel"

全局参数不绑定到特定的虚拟主机,仅由名称和值组成。

重要

参数用法的一个重要示例是策略 (policies)

虚拟主机作用域参数

如上所述,参数分为虚拟主机作用域参数和全局参数。虚拟主机作用域参数的一个例子是联邦上游 (federation upstream):它针对某个组件 (federation-upstream),拥有一个标识它的名称,绑定到某个虚拟主机(联邦链接将指向该虚拟主机的某些资源),并且其值定义了连接到上游代理的参数。

虚拟主机作用域参数可以被设置、清除和列出

# sets a runtime parameter in a virtual host
rabbitmqctl set_parameter [-p vhost] <component_name> <name> <value>

# lists runtime parameters in a virtual host
rabbitmqctl list_parameters [-p vhost]

# clears (unsets) a runtime parameter in a virtual host
rabbitmqctl clear_parameter [-p vhost] <component_name> <name>

全局参数

全局参数是另一种参数。全局参数的一个例子是集群名称。全局参数可以被设置、清除和列出

# sets a global (virtual-host-independent) runtime parameter
rabbitmqctl set_global_parameter <name> <value>

# lists global (virtual-host-independent) runtime parameters
rabbitmqctl list_global_parameters

# clears (unsets) a global (virtual-host-independent) runtime parameter
rabbitmqctl clear_global_parameter <name>

由于参数值是一个 JSON 文档,因此在命令行中使用 rabbitmqctl 创建参数时,通常需要对其进行引用。在 Unix 系统上,通常最简单的方法是用单引号包裹整个文档,并在内部使用双引号。在 Windows 上,则必须对每个双引号进行转义。出于这个原因,我们提供了 Unix 和 Windows 两种平台的示例。

参数存储在 RabbitMQ 用于定义虚拟主机、交换器、队列、绑定、用户和权限的数据库中。当使用管理插件的导出功能时,参数会与其他对象定义一起被导出。

虚拟主机作用域参数由联邦 (federation) 和 shovel 插件使用。

全局参数用于存储各种集群级元数据,例如集群名称、集群标签,以及内部节点元数据(如已导入的 definitions 哈希值)。

集群名称

集群名称存储在全局运行时参数中。它可以使用专门的 CLI 命令进行更新。

rabbitmqctl set_cluster_name rabbit@id-3942837

集群标签

集群标签是描述集群的任意键值对。运维人员可以使用它们来附加特定于部署的信息。

集群标签存储在名为 cluster_tags 的全局参数中。它们也可以使用 rabbitmq.conf 进行预配置

cluster_tags.series = 4.1.x

cluster_tags.purpose = iot_ingress
cluster_tags.region = ca-central-1
cluster_tags.environment = production

要检索标签列表,请列出全局运行时参数或获取名为 cluster_tags 的全局运行时参数,或者使用 rabbitmqadmin v2snow overview 命令。

# lists global (virtual-host-independent) runtime parameters
rabbitmqctl list_global_parameters

策略

策略现已记录在专门的指南中。

运营商策略

操作员策略现已记录在策略指南中。

© . This site is unofficial and not affiliated with VMware.