1 RabbitMQ集群简介
RabbitMQ 集群是一个或多个节点的逻辑分组,每个节点共享用户、虚拟主机、队列、流、交换机、绑定、运行时参数和其他分布式状态。
集群中的节点名称必须是唯一的。在集群中,节点使用节点名称来识别和相互联系。这意味着每个节点名称的主机名部分必须可以解析。CLI 工具也使用节点名称来识别和寻址节点。当节点启动时,它会检查是否已为其分配了节点名称。如果未显式配置值,则节点会解析其主机名并在其前面加上rabbit@ 以计算其节点名称。
RabbitMQ代理操作所需的所有数据/状态都在所有节点之间复制。消息队列是此规则的例外,默认情况下消息队列驻留在一个节点上,但可以从所有节点查看和访问。要在集群中的节点之间复制队列,请使用支持复制的队列类型。
一般提到的RabbitMQ镜像集群,实际上由集群加上经典消息队列的镜像复制策略构成。RabbitMQ 4.0及后续版本不再支持经典消息队列的镜像复制功能,因此本例采用RabbitMQ 3.13.7版实现。
2 安装配置规划
| 配置项 | 主机一 | 主机二 |
|---|---|---|
| IP地址 | 10.10.1.45 | 10.10.1.46 |
| 主机名称 | KL5 | KL6 |
| 配置用户 | kylin | kylin |
| 安装文件目录 | /home/kylin/Install | /home/kylin/Install |
| 消息队列目录 | /data/rabbitmq | /data/rabbitmq |
| 相关端口 | 使用默认值 | 使用默认值 |
| MQ测试用户 | test/password | |
| MQ虚拟主机 | /test/ | |
| 镜像策略名 | jxjq | |
3 安装RabbitMQ
3.1 安装版本说明
RabbitMQ仅4.0以下版本支持经典队列镜像,因此本例选择RabbitMQ 3.x版本中最新的3.13.7版。根据官方网站上RabbitMQ与Erlang的版本兼容性矩阵,Erlang版本选择26.x中最新的26.2.5.15。
银河麒麟V10的桌面版和服务器版的安装体系差异很大,默认已经安装的包也不同,因此在安装Erlang之前,银河麒麟V10的桌面版和服务器版需要安装不同的包。本例基于以下银河麒麟版本建立。
Kylin-Desktop-V10-GFB-HWE-Release-020-X86_64
Kylin-Desktop-V10-GFB-020-Release-20.1.3-ARM64
Kylin-Server-V10-GFB-Release-030-X86_64
Kylin-Server-V10-GFB-030-Release-30.1.3-ARM64
3.2 麒麟V10桌面版(GFB)
3.2.1 安装前准备
使用管理员用户,创建安装文件目录。
kylin@KL5:~$ mkdir Install
3.2.2 安装ncurses
3.2.2.1 使用deb包安装
银河麒麟V10桌面版(GFB)默认已安装libtinfo6、libncurses6、libncursesw6,版本为6.2-0kylin2,需要安装对应版本的libncurses-dev。本例拿到的是6.2-0kylin2.1版本,因为依赖关系除安装libncurses-dev外,需要安装对应版本的libtinfo6、libncurses6、libncursesw6。
使用管理员账户,执行dpkg -i命令安装libncurses-dev及其依赖包。
kylin@KL5:~/Install$ sudo dpkg -i libncurses-dev_6.2-0kylin2.1_amd64.deb libtinfo6_6.2-0kylin2.1_amd64.deb libncurses6_6.2-0kylin2.1_amd64.deb libncursesw6_6.2-0kylin2.1_amd64.deb
正在选中未选择的软件包 libncurses-dev:amd64。
(正在读取数据库 ... 系统当前共安装有 187718 个文件和目录。)
准备解压 libncurses-dev_6.2-0kylin2.1_amd64.deb ...
正在解压 libncurses-dev:amd64 (6.2-0kylin2.1) ...
准备解压 libtinfo6_6.2-0kylin2.1_amd64.deb ...
正在解压 libtinfo6:amd64 (6.2-0kylin2.1) 并覆盖 (6.2-0kylin2) ...
准备解压 libncurses6_6.2-0kylin2.1_amd64.deb ...
正在解压 libncurses6:amd64 (6.2-0kylin2.1) 并覆盖 (6.2-0kylin2) ...
准备解压 libncursesw6_6.2-0kylin2.1_amd64.deb ...
正在解压 libncursesw6:amd64 (6.2-0kylin2.1) 并覆盖 (6.2-0kylin2) ...
正在设置 libtinfo6:amd64 (6.2-0kylin2.1) ...
正在设置 libncurses6:amd64 (6.2-0kylin2.1) ...
正在设置 libncursesw6:amd64 (6.2-0kylin2.1) ...
正在设置 libncurses-dev:amd64 (6.2-0kylin2.1) ...
正在处理用于 man-db (2.9.1-1kylin0k1) 的触发器 ...
正在处理用于 libc-bin (2.31-0kylin9.1k20.8) 的触发器 ...
如果无法获取麒麟官方安装包,可以下载debian提供的包,版本为6.2+20201114-2或其他接近版本。可以使用中科大的镜像网站。
3.2.2.2 使用源代码安装
从gnu官方网站下载最新版本的源代码包ncurses-6.5.tar.gz,放置到安装目录。解压缩后进入解压后的目录,执行configure命令。
kylin@KL5:~/Install$ tar -zxf ncurses-6.5.tar.gz
kylin@KL5:~/Install$ cd ncurses-6.5/
kylin@KL5:~/Install/ncurses-6.5$ ./configure
checking for ggrep... no
checking for grep... grep
checking for egrep... grep -E
Configuring NCURSES 6.5 ABI 6 (Fri Sep 19 10:43:14 CST 2025)
…………
这里很多提示信息,此处省略。
…………
** Configuration summary for NCURSES 6.5 20240427:
extended funcs: yes
xterm terminfo: xterm-new
bin directory: /usr/bin
lib directory: /usr/lib
include directory: /usr/include
man directory: /usr/share/man
terminfo directory: /usr/share/terminfo
继续执行make指令进行编译。
kylin@KL5:~/Install/ncurses-6.5$ make
( cd man && make DESTDIR="" RPATH_LIST="/usr/lib" all )
make[1]: 进入目录“/home/kylin/Install/ncurses-6.5/man”
/bin/sh ./MKterminfo.sh ./terminfo.head ./../include/Caps ./../include/Caps-ncurses ./terminfo.tail >terminfo.5
…………
这里很多提示信息,此处省略。
…………
compiling demo (obj_s)
/usr/bin/g++ -o demo ../objects/demo.o -L../lib -lncurses++w -L../lib -lformw -lmenuw -lpanelw -lncursesw -lutil -DHAVE_CONFIG_H -DBUILDING_NCURSES_CXX -I../c++ -I. -I../include -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG -O2 -DNCURSES_STATIC
make[1]: 离开目录“/home/kylin/Install/ncurses-6.5/c++”
编译成功后,用管理员账户执行make install安装。
kylin@KL5:~/Install/ncurses-6.5$ sudo make install
( cd man && make DESTDIR="" RPATH_LIST="/usr/lib" install )
make[1]: 进入目录“/home/kylin/Install/ncurses-6.5/man”
/bin/sh ../edit_man.sh normal installing /usr/share/man . terminfo.5 *-config.1 ./*.[0-9]* ...made /home/kylin/Install/ncurses-6.5/man_alias.sed
…………
这里很多提示信息,此处省略。
…………
installing ./cursesapp.h in /usr/include
installing ./cursesf.h in /usr/include
i

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



