RabbitMQ 教程

环境变量配置

一般情况下,可以使用默认的内建配置来有效地运行 RabbitMQ ,并且大多数情况下也并不需要修改任何 RabbitMQ 的配直。当然,为了更加有效地操控 RabbitMQ ,也可以利用调节系统范围内的参数来达到定制化的需求。

本章节将介绍怎样通过环境变量(Environment Variable)实现 RabbitMQ 的定制化配置,如节点名称、配置文件的路径、节点内部通信端口等等。

对于不同的操作系统(OS)和不同的 RabbitMQ 安装包来说,相应的配置会有所变化,包括相应的配置文件路径等等。

RabbitMQ 的环境变量都是以“RABBITMQ_”前缀开头的。如果在 Linux 环境中,可以通过 Shell 环境进行设置,也可以在 rabbitmq-env.conf 环境变量文件中设置。如果在 Windows 系统中,可以通过修改 rabbitmq-env.bat 批处理文件来实现。

示例(Windows)

下面通过修改 RabbitMQ 的节点名称来演示,可使用命令查看 RabbitMQ 状态信息,如下:

D:\server\rabbitmq_server-3.9.11\sbin> rabbitmqctl status
Status of node rabbit@hxstrive ...
Runtime

OS PID: 11964
OS: Windows
Uptime (seconds): 88237
Is under maintenance?: false
RabbitMQ version: 3.9.11
Node name: rabbit@hxstrive
...

上面输出信息中,当前 RabbitMQ 节点名称为 rabbit@hxstrive,RabbitMQ 默认以“rabbit@”开头,然后加上当前系统主机名。当前系统主机名如下图:

编辑 rabbitmq-env.bat 批处理文件,添加“set NODENAME=hello”内容(见第11行),如下图:

重新启动 RabbitMQ 服务,使用命令查看 RabbitMQ 状态信息。如下:

D:\server\rabbitmq_server-3.9.11\sbin> rabbitmqctl status
Status of node hello@hxstrive ...
Runtime

OS PID: 19016
OS: Windows
Uptime (seconds): 20
Is under maintenance?: false
RabbitMQ version: 3.9.11
Node name: hello@hxstrive
...

从上面的输出可以看出,节点名称已经变成了“hello@hxstrive”,而不是默认的“rabbit@hxstrive”。

示例(Linux)

还是继续上面的示例,通过修改 RabbitMQ 的节点名称来演示在 Linux 下,怎样通过环境变量设置节点名称。

使用 vim 编辑 /etc/rabbitmq/rabbitmq-env.conf 文件,修改文件中的 NODENAME 配置。如下图:

上面将节点名称修改为“hello”,通过 :wq 命令保存配置文件。

然后,使用命令重启 RabbitMQ 服务,如下:

hxstrive@course:/etc/rabbitmq$ sudo rabbitmqctl status
Status of node hello@course ...
Runtime

OS PID: 41654
OS: Linux
Uptime (seconds): 36
Is under maintenance?: false
RabbitMQ version: 3.8.9
Node name: hello@course
Erlang configuration: Erlang/OTP 23 [erts-11.1.8] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:64]
Erlang processes: 446 used, 1048576 limit
Scheduler run queue: 1
Cluster heartbeat timeout (net_ticktime): 60
...

从上面的输出可以看出,节点名称已经变成了“hello@course”,而不是默认的“rabbit@course”。

通过环境变量除了设置节点名(NODENAME)之外,可以设置节点IP地址(NODE_IP_ADDRESS)、节点端口(NODE_PORT)等等

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号