目录
一.简介
二.安装
1.Erlang安装
2.安装rabbitmq
3.集群配置(3台服务器)
一.简介
RabbitMQ是一个消息代理 - 一个消息系统的媒介。它可以为你的应用提供一个通用的消息发送和接收平台,并且保证消息在传输过程中的安全。由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列。
二.安装 1.Erlang安装
yum install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC.x86_64 unixODBC-devel.x86_64 gtk3-devel.x86_64 fop.noarch whatprovides autoconf automake -y
yum install whatprovides autoconf automake -y
wget https://github.com/erlang/otp/archive/refs/tags/OTP-23.2.1.tar.gz
tar xf OTP-23.2.1.tar.gz
mv otp-OTP-23.2.1 erlang
cd erlang/
./otp_build autoconf
./configure --prefix=/usr/local/erlang
make && make install
#配置Erlang 环境变量
#编辑
vim /etc/profile
export PATH=$PATH:/rabbitmq/erlang/bin
source /etc/profile
#测试
[root@ks02 bin]# erl
Erlang/OTP 23 [erts-11.1.5] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [hipe]
Eshell V11.1.5 (abort with ^G)
1>
2.安装rabbitmq
#安装rabbitmq
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.2/rabbitmq-server-3.9.2-1.el8.noarch.rpm
rpm -ivh --nodeps ./rabbitmq-server-3.8.3-1.el7.noarch.rpm
#安装web管理插件
rabbitmq-plugins enable rabbitmq_management
#启动失败,无erlang环境
systemctl start rabbitmq-server.service
#问题处理,添加erlang环境变量
vim +187 /usr/lib/rabbitmq/bin/rabbitmq-server
export PATH=$PATH:/rabbitmq/erlang/bin
#启动成功
systemctl start rabbitmq-server.service
systemctl stop rabbitmq-server.service
3.集群配置(3台服务器)
#本集群由三台服务器组成,先确保三台服务器分别按照Rabbit单机安装方式安装成功,再进行以下操作。
#设置Erlang cookie(设置不同节点间同一认证的Erlang cookie)
#将作为主节点的Erlang cookie复制到其他两个节点上
#首先备份
mv /var/lib/rabbitmq/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie.bak
chmod 700 /var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie RBMQ2:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie RBMQ3:/var/lib/rabbitmq/
#设置权限
chmod 400 /var/lib/rabbitmq/.erlang.cookie
chown rabbitmq /var/lib/rabbitmq/.erlang.cookie
chgrp rabbitmq /var/lib/rabbitmq/.erlang.cookie
#三台服务器分别执行:
rabbitmq-server -detached
#在其他两台从节点执行
[root@tv7-rabbit-mq-7aea3ef8 rabbitmq]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@tv7-rabbit-mq-7aea3ef8 ...
#连接集群(rabbit@tv7-rabbit-mq-46b9814a:主节点的rabbit@host)
rabbitmqctl join_cluster rabbit@tv7-rabbit-mq-46b9814a
#启动集群
rabbitmqctl start_app
#查看状态
rabbitmqctl cluster_status