Ubuntu部署RabbitMQ集群
三台机器部署集群
安装openssl
参考文档:https://blog.csdn.net/Liangkuaijun/article/details/129382473
[root@rabbitmq-cluster openssl-3.2.0]# perl -MCPAN -e shell
Sorry, we have to rerun the configuration dialog for CPAN.pm due to
some missing parameters. Configuration will be written to
<</root/.cpan/CPAN/MyConfig.pm>>
CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.
Would you like to configure as much as possible automatically? [yes]
<install_help>
Warning: You do not have write permission for Perl library directories.
To install modules, you need to configure a local Perl library directory or
escalate your privileges. CPAN can help you by bootstrapping the local::lib
module or by configuring itself to use 'sudo' (if available). You may also
resolve this problem manually if you need to customize your setup.
What approach do you want? (Choose 'local::lib', 'sudo' or 'manual')
[local::lib] manual
Autoconfigured everything but 'urllist'.
Now you need to choose your CPAN mirror sites. You can let me
pick mirrors for you, you can select them from a list or you
can enter them by hand.
Would you like me to automatically choose some CPAN mirror
sites for you? (This means connecting to the Internet) [yes] no
Would you like to pick from the CPAN mirror list? [yes] no
Now you can enter your own CPAN URLs by hand. A local CPAN mirror can be
listed using a 'file:' URL like 'file:///path/to/cpan/'
CPAN.pm needs at least one URL where it can fetch CPAN files from.
Please enter your CPAN site: [] http://mirrors.aliyun.com/CPAN/
Enter another URL or ENTER to quit: []
New urllist
http://mirrors.aliyun.com/CPAN/
Autoconfiguration complete.
commit: wrote '/root/.cpan/CPAN/MyConfig.pm'
You can re-run configuration any time with 'o conf init' in the CPAN shell
Terminal does not support AddHistory.
cpan shell -- CPAN exploration and modules installation (v1.9800)
Enter 'h' for help.
编译OpenSSL时报错,Can‘t locate IPC/Cmd.pm in @INC yum install -y perl-CPAN perl -MCPAN -e shell cpan[1]> install IPC/Cmd.pm cpan[1]>quit yum -y install gtk2-devel binutils-devel configure: error: No curses library functions found yum install ncurses-devel configure: WARNING: wxWidgets don't have gl support, wx will NOT be useable yum -y install gtk2-devel binutils-devel configure: WARNING: Can not find C++ compiler yum install gcc gcc-c++
./config --prefix=/usr/local/openssl
make
make install cp /usr/local/openssl/lib64/libssl.so.3 /usr/lib64/ cp /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/ cp /usr/local/openssl/bin/openssl /usr/bin/
openssl version
安装erlang
参考:https://www.cnblogs.com/rtnb/p/16996219.html
./configure --with-ssl=/usr/local/openssl
make
make install
解压
xz -d rabbitmq-server-generic-unix-3.9.16.tar.xz tar -xvf rabbitmq-server-generic-unix-3.9.16.tar echo 'export PATH=$PATH:/data/rabbitmq_server-3.9.16/sbin' >> /etc/profile source /etc/profile
rabbitmqctl status rabbitmqctl cluster_status # 配置集群 设置erlang cookie
需要先停止rabbitmq,再复制 scp /root/.erlang.cookie rabbitma-2:/root/ scp /root/.erlang.cookie rabbitmq-3:/root/
# 修改主机名称并配置三台主机的主机名相互解析
vim /etc/hosts
# 启动 rabbitmqctl stop rabbitmq-server -detached # 加入集群 # node2 rabbitmqctl stop_app # node-3 rabbitmqctl stop_app # node2 rabbitmqctl join_cluster rabbit@rabbitmq-1 # node-3 rabbitmqctl join_cluster rabbit@rabbitmq-1 # 查询集群状态 [root@iZbp13w7pf6vcz36pj136yZ rabbitmq_server-3.9.16]# rabbitmqctl cluster_status Cluster status of node rabbit@rabbitmq-2 ... Basics Cluster name: rabbit@rabbitmq-2 Disk Nodes rabbit@rabbitmq-1 rabbit@rabbitmq-2 rabbit@rabbitmq-3 Running Nodes rabbit@rabbitmq-1 rabbit@rabbitmq-2 rabbit@rabbitmq-3 Versions rabbit@rabbitmq-1: RabbitMQ 3.9.16 on Erlang 23.3.4.18 rabbit@rabbitmq-2: RabbitMQ 3.9.16 on Erlang 23.3.4.18 rabbit@rabbitmq-3: RabbitMQ 3.9.16 on Erlang 23.3.4.18 Maintenance status Node: rabbit@rabbitmq-1, status: not under maintenance Node: rabbit@rabbitmq-2, status: not under maintenance Node: rabbit@rabbitmq-3, status: not under maintenance
===============================================================================
一台机器部署三节点
#节点1 RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit1 ./rabbitmq-server -detached #节点2 RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}] -rabbitmq_stomp tcp_listeners [61614] -rabbitmq_mqtt tcp_listeners [1884]" RABBITMQ_NODENAME=rabbit2 ./rabbitmq-server -detached #节点3 RABBITMQ_NODE_PORT=5674 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15674}] -rabbitmq_stomp tcp_listeners [61615] -rabbitmq_mqtt tcp_listeners [1885]" RABBITMQ_NODENAME=rabbit3 ./rabbitmq-server -detached
集群操作
把节点rabbit2,3 加入 rabbit1中
停止第二个节点的应用程序
./rabbitmqctl -n rabbit2 stop_app
重新设置第二个节点的元数据和状态为清空状态
./rabbitmqctl -n rabbit2 reset
加入第一节点
./rabbitmqctl -n rabbit2 join_cluster rabbit1
重新启动第二节点
./rabbitmqctl -n rabbit2 start_app
查看集群状态
./rabbitmqctl cluster_status -n rabbit1
开启web管理界面
./rabbitmq-plugins enable rabbitmq_management
./rabbitmq-plugins list
创建管理用户
cd /data/rabbitmq_server-3.7.18/sbin
./rabbitmqctl start_app -n rabbit1 ./rabbitmqctl add_user admin admin -n rabbit1 ./rabbitmqctl set_user_tags admin administrator -n rabbit1 ./rabbitmqctl set_permissions -p '/' admin '.' '.' '.' -n rabbit1
启动
root@rabbitmq:/data/rabbitmq_server-3.7.18/sbin# ./rabbitmqctl start_app -n rabbit2 Starting node rabbit2@rabbitmq ... root@rabbitmq:/data/rabbitmq_server-3.7.18/sbin# ./rabbitmqctl start_app -n rabbit3 Starting node rabbit3@rabbitmq ...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类