RabbitMQ集群(单机多实例部署)

RabbitMQ集群(单机多实例部署)


一、单机多实例部署

单机版安装地址:RabbitMQ3.8.4安装和配置

在单机版基础上 ,也就是一台Linux虚拟机上启动多个RabbitMQ实例,部署集群。


1. 在单个Linux虚拟机上运行多个RabbitMQ实例:

  • 多个RabbitMQ使用的 端口 号不能冲突
  • 多个RabbitMQ使用的磁盘 存储路径 不能冲突
  • 多个RabbitMQ的 配置文 件也不能冲突

说明:

在单个Linux虚拟机上运行多个RabbitMQ实例,涉及到RabbitMQ虚拟 主机的名称 不能重复,每个RabbitMQ使用的 端口 不能重复。

RABBITMQ_NODE_PORT :用于设置RabbitMQ的服务发现,对外发布的其他端口在这个端口基础上计算得来。(指定5672端口)


1.1 端口介绍
端口号 说明
4369 epmd,RabbitMQ节点和CLI工具使用的对等发现服务
5672、5671 分别为不带TLS和带TLS的AMQP 0-9-1和1.0客户端使用
25672 用于节点间和CLI工具通信(Erlang分发服务器端口),并从动态范围分配(默认情况下限制为单个端口,计算为AMQP端口+ 20000)。一般这些端口不应暴露出去。
35672-35682 由CLI工具(Erlang分发客户端端口)用于与节点进行通信,并从动态范围(计算为服务器分发端口+ 10000通过服务器分发端口+ 10010)分配。
15672 HTTP API客户端,管理UI和Rabbitmqadmin(仅在启用了管理插件的情况下)
61613、61614 不带TLS和带TLS的STOMP客户端(仅在启用STOMP插件的情况下)
1883、8883 如果启用了MQTT插件,则不带TLS和具有TLS的MQTT客户端
15674 STOMP-over-WebSockets客户端(仅在启用了Web STOMP插件的情况下)
15675 MQTT-over-WebSockets客户端(仅在启用Web MQTT插件的情况下)
15692 Prometheus指标(仅在启用Prometheus插件的情况下)

RABBITMQ_NODENAME :用于设置RabbitMQ节点名称, @ 前缀是用户名, @ 后缀是RabbitMQ所在的Linux主机的 hostname 。

通 常:在同一台服务器上,运行多个rabbitmq实例,只要变更5672端口即可。

1.2 数据存储目录:
	通过修改RABBITMQ_NODENAME属性的值,可以修改数据存储和日志存储目录

在这里插入图片描述

1.3 日志数据存储目录:

在这里插入图片描述


RabbitMQ使用的环境变量:

环境变量 说明
RABBITMQ_NODE_IP_ADDRESS 将RabbitMQ绑定到一个网络接口。 如果要绑定多个网络接口,可以在配置文件中配置。 默认值:空字串。表示绑定到所有的网络接口。
RABBITMQ_NODE_PORT 默认值:5672
RABBITMQ_DIST_PORT RabbitMQ节点之间通信以及节点和CLI工具通信用到的端口。 如果在配置文件中配置了kernel.inet_dist_listen_min 或者kernel.inet_dist_listen_max,则忽略该配置。 默认值:$RABBITMQ_NODE_PORT + 20000
ERL_EPMD_ADDRESS epmd 使用的网络接口, epmd 用于节点之间以及节点和CLI之间的通信。 默认值:所有网络接口,包括和IPv4。
ERL_EPMD_PORT epmd 使用的端口。 默认值:4369。
RABBITMQ_DISTRIBUTION_BUFFER_SIZE 节点之间通信连接使用的发送数据缓冲区大小限制, 单位是KB。推荐使用小于64MB的值。 默认值:128000。
RABBITMQ_IO_THREAD_POOL_SIZE Erlang运行时的 I/O 用到的线程数。不推荐小于32的值。 默认值:128(Linux),64(Windows)
RABBITMQ_NODENAME RabbitMQ的节点名称。对于Erlang节点和机器,此名称应该唯一。 通过设置此值,可以在一台机器上多个RabbitMQ节点。 默认值:rabbit@$HOSTNAME(Unix-like),rabbit@%COMPUTERNAME%(Windows)。
RABBITMQ_CONFIG_FILE RabbitMQ主要配置文件的路径。例如 /etc/rabbitmq/rabbitmq.conf 或者 /data/configuration/rabbitmq.conf 是新格式的配置文件。 如果是老格式的配置文件,扩展名是 .config 或者不写。 默认值: 对于Unix: R A B B I T M Q H O M E / e t c / r a b b i t m q / r a b b i t m q D e b i a n : / e t c / r a b b i t m q / r a b b i t m q R P M : / e t c / r a b b i t m q / r a b b i t m q M a c O S ( H o m e b r e w ) : RABBITMQ_HOME/etc/rabbitmq/rabbitmq Debian:/etc/rabbitmq/rabbitmq RPM: /etc/rabbitmq/rabbitmq MacOS(Homebrew): RABBITMQHOME/etc/rabbitmq/rabbitmqDebian:/etc/rabbitmq/rabbitmqRPM/etc/rabbitmq/rabbitmqMacOS(Homebrew){install_prefix}/etc/rabbitmq/rabbitmq , Homebrew的前缀通常是: /usr/local/ Windo%APPDATA%\RabbitMQ\rabbitmq
RABBITMQ_ADVANCED_CONFIG_FILE RabbitMQ带 .config 的高级配置文件路径(基于Erlang配置)。例如, /data/rabbitmq/advanced.config 。默认值:Unix: $RABBITMQ_HOME/etc/rabbitmq/advanced Debian: /etc/rabbitmq/advanced RPM: /etc/rabbitmq/advanced MacOS(Homebrew): ${install_prefix}/etc/rabbitmq/advanced , 其中Homebrew前缀通常是 /etc/local/Windows: %APPDATA%\RabbitMQ\advanced 。
RABBITMQ_CONF_ENV_FILE 包含了环境变量定义的文件的目录(不使用 RABBITMQ_ 前缀)。 Windows上的文件名称与其他操作系同。 默认值: UNIX: $RABBITMQ_HOME/etc/rabbitmq/rabbitmq-env.conf Ubuntu和Debian: /etc/rabbitmq/rabbitmq-env.conf RPM: /etc/rabbitmq/rabbitmq-env.conf Mac (Homebrew): ${install_prefix}/etc/rabbitmq/rabbitmq-env.conf ,Homebrew的前缀一般是 /usr/local Windows: %APPDATA%\RabbitMQ\rabbitmq-env-conf.bat
RABBITMQ_MNESIA_DIR RabbitMQ节点存储数据的目录。该目录中包含了数据库、 消息存储、集群成员信息以及节点其他的持状态。 默认值: 通用UNIX包: R A B B I T M Q M N E S I A B A S E / RABBITMQ_MNESIA_BASE/ RABBITMQMNESIABASE/RABBITMQ_NODENAME Ubuntu和Debia R A B B I T M Q M N E S I A B A S E / RABBITMQ_MNESIA_BASE/ RABBITMQMNESIABASE/RABBITMQ_NODENAME RPM: R A B B I T M Q M N E S I A B A S E / RABBITMQ_MNESIA_BASE/ RABBITMQMNESIABASE/RABBITMQ_NO MacOS (Homebrew): i n s t a l l p r e f i x / v a r / l i b / r a b b i t m q / m n e s i a / {install_prefix}/var/lib/rabbitmq/mnesia/ installprefix/var/lib/rabbitmq/mnesia/RABBITMQ_NODENAME , Homebrew的前缀一般是 /usr/local Windows: %APPDATA%\RabbitMQ$RABBITMQ_NODENAME
RABBITMQ_PLUGINS_DIR 存放插件压缩文件的目录。RabbitMQ从此目录解压插件。 跟PATH变量语法类似,多个路径之间使用统的分隔符分隔 (Unix是 : ,Windows是’;')。插件可以安装到该变量指定的任何目录。 路径不要有符。 默认值: 通用UNIX包: R A B B I T M Q H O M E / p l u g i n s U b u n t u 和 D e b i a n 包: / v a r / l i b / r a b b i t m q / p l u g i n s R P M : / v a r / l i b / r a b b i t m q / p l u g i n s M a c O S ( H o m e b r e w ) : RABBITMQ_HOME/plugins Ubuntu和Debian包: /var/lib/rabbitmq/plugins RPM: /var/lib/rabbitmq/plugins MacOS (Homebrew): RABBITMQHOME/pluginsUbuntuDebian包:/var/lib/rabbitmq/pluginsRPM/var/lib/rabbitmq/pluginsMacOS(Homebrew){install_prefix}/Cellar/rabbitmq/${version}/plugins , Homebrew的前缀一般是 /usr/ Windows: %RABBITMQ_HOME%\plugins
RABBITMQ_PLUGINS_EXPAND_DIR 节点解压插件的目录,并将该目录添加到代码路径。该路径不要包含特殊字符。 默认值: UNIX: R A B B I T M Q M N E S I A B A S E / RABBITMQ_MNESIA_BASE/ RABBITMQMNESIABASE/RABBITMQ_NODENAME-plugins-expand Ubuntu和Debian packages: R A B B I T M Q M N E S I A B A S E / RABBITMQ_MNESIA_BASE/ RABBITMQMNESIABASE/RABBITMQ_NODENAME-plugins-expand RPM: R A B B I T M Q M N E S I A B A S E / RABBITMQ_MNESIA_BASE/ RABBITMQMNESIABASE/RABBITMQ_NODENAME-plugins-expand MacOS (Homebrew): i n s t a l l p r e f i x / v a r / l i b / r a b b i t m q / m n e s i a / {install_prefix}/var/lib/rabbitmq/mnesia/ installprefix/var/lib/rabbitmq/mnesia/RABBITMQ_NODENAME-plugins-expand Window%APPDATA%\RabbitMQ$RABBITMQ_NODENAME-plugins-expand
RABBITMQ_USE_LONGNAME 当设置为 true 的时候,RabbitMQ会使用全限定主机名标记节点。 在使用全限定域名的环境中使用。重置节点, 不能在全限定主机名和短名之间切换。 默认值: false 。
RABBITMQ_SERVER_CODE_PATH 当启用运行时的时候指定的外部代码路径(目录)。 当节点启动的时候,这个是值传给 erl 的命令行默认值:(none)
RABBITMQ_CTL_ERL_ARGS 当调用 rabbitmqctl 的时候传给 erl 的命令行参数。 可以给Erlang设置使用端口的范围: -kernel inet_dist_listen_min 35672 -kernel inet_dist_listen_max 35680 默认值:(none)
RABBITMQ_SERVER_ERL_ARGS 当调用RabbitMQ服务器的时候 erl 的标准命令行参数。 仅用于测试目的。使用该环境变量会覆盖默认默认值: Unix*: +P 1048576 +t 5000000 + stbt db +zdbbl 128000 Windows:没有
RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS 调用RabbitMQ服务器的时候传递给 erl 命令的额外参数。 该变量指定的变量追加到默认参数列表( RABBITMQ_SERVER_ERL_ARGS )。 默认值: Unix*: 没有 Windows: 没有
RABBITMQ_SERVER_START_ARGS 调用RabbitMQ服务器的时候传给 erl 命令的额外参数。该变量不覆盖 RABBITMQ_SERVER_ERL_ARGS默认值:没有
RABBITMQ_ENABLED_PLUGINS_FILE 用于指定 enabled_plugins 文件所在的位置。默认: /etc/rabbitmq/enabled_plugins

1.4 启动多个rabbitmq实例,方式一:通过设置环境变量

启动节点一:
	export RABBITMQ_NODE_PORT=5672
	export RABBITMQ_NODENAME=rabbit2
	rabbitmq-server

启动节点二:
	export RABBITMQ_NODE_PORT=5673
	export RABBITMQ_NODENAME=rabbit3
	rabbitmq-server
	
启动节点:三
	export RABBITMQ_NODE_PORT=5674
	export RABBITMQ_NODENAME=rabbit4
	rabbitmq-server

测试

在这里插入图片描述
查看当前启动的节点状态信息:

	[root@RabbitMQ ~]# rabbitmqctl --node rabbit1@RabbitMQ status
	Status of node rabbit1@RabbitMQ ...
	Runtime
	
	OS PID: 8675
	OS: Linux
	Uptime (seconds): 171
	RabbitMQ version: 3.8.5
	Node name: rabbit1@RabbitMQ
	Erlang configuration: Erlang/OTP 23 [erts-11.0.2] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:64] [hipe]
	Erlang processes: 440 used, 1048576 limit
	Scheduler run queue: 1
	Cluster heartbeat timeout (net_ticktime): 60
	
	Plugins
	
	Enabled plugin file: /etc/rabbitmq/enabled_plugins
	Enabled plugins:
	
	 * rabbitmq_management
	 * amqp_client
	 * rabbitmq_web_dispatch
	 * cowboy
	 * cowlib
	 * rabbitmq_management_agent
	
	Data directory
	
	Node data directory: /var/lib/rabbitmq/mnesia/rabbit1@RabbitMQ
	Raft data directory: /var/lib/rabbitmq/mnesia/rabbit1@RabbitMQ/quorum/rabbit1@RabbitMQ
	
	Config files
	
	 * /etc/rabbitmq/rabbitmq.conf
	
	Log file(s)
	
	 * /var/log/rabbitmq/rabbit1@RabbitMQ.log
	 * /var/log/rabbitmq/rabbit1@RabbitMQ_upgrade.log
	
	Alarms
	
	(none)
	
	Memory
	
	Calculation strategy: rss
	Memory high watermark setting: 0.4 of available memory, computed to: 0.4079 gb
	other_proc: 0.0329 gb (33.46 %)
	code: 0.0277 gb (28.14 %)
	other_system: 0.0123 gb (12.46 %)
	allocated_unused: 0.0117 gb (11.92 %)
	plugins: 0.0086 gb (8.7 %)
	other_ets: 0.0032 gb (3.24 %)
	atom: 0.0014 gb (1.44 %)
	mgmt_db: 0.0003 gb (0.27 %)
	binary: 0.0001 gb (0.14 %)
	mnesia: 0.0001 gb (0.08 %)
	metrics: 0.0001 gb (0.06 %)
	connection_other: 0.0 gb (0.05 %)
	msg_index: 0.0 gb (0.03 %)
	quorum_ets: 0.0 gb (0.02 %)
	connection_channels: 0.0 gb (0.0 %)
	connection_readers: 0.0 gb (0.0 %)
	connection_writers: 0.0 gb (0.0 %)
	queue_procs: 0.0 gb (0.0 %)
	queue_slave_procs: 0.0 gb (0.0 %)
	quorum_queue_procs: 0.0 gb (0.0 %)
	reserved_unallocated: 0.0 gb (0.0 %)
	
	File Descriptors
	
	Total: 2, limit: 927
	Sockets: 0, limit: 832
	
	Free Disk Space
	
	Low free disk space watermark: 0.05 gb
	Free disk space: 14.6768 gb
	
	Totals
	
	
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穿城大饼

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值