本教程主要用于CentOS7操作系统如何安装配置RabbitMQ集群环境,非Docker版本教程。
1.编译erlang
1.1 下载
官网:https://www.erlang.org/
我这里以24.3.3版本为例,访问https://www.erlang.org/patches/otp-24.3.3
$ wget https://github.com/erlang/otp/releases/download/OTP-24.3.3/otp_src_24.3.3.tar.gz
1.2 系统依赖库安装
# yum install ncurses-devel
# yum install -y xz
1.3 编译
$ mkdir ~/3rd
$ tar zxf otp_src_24.3.3.tar.gz
$ cd otp_src_24.3.3/
$ ./configure --prefix=/home/nm/3rd/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac
$ make -j`cat /proc/cpuinfo| grep "processor"| wc -l`
$ make install
1.4 配置环境变量
$ vim ~/.bash_profile
ERLANG_HOME=$HOME/3rd/erlang
export PATH=$ERLANG_HOME/bin:$PATH
1.5 生效环境变量
$ source ~/.bash_profile
$ erl -version
Erlang (SMP,ASYNC_THREADS) (BEAM) emulator version 12.3.1
2.编译rabitmq
2.1 下载
$ wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.15/rabbitmq-server-generic-unix-3.9.15.tar.xz
$ xz -d rabbitmq-server-generic-unix-3.9.15.tar.xz
$ tar xf rabbitmq-server-generic-unix-3.9.15.tar
2.2 配置环境变量
$ vim ~/.bash_profile
RABBIT_MQ_HOME=$HOME/rabbitmq_server-3.9.15
export PATH=$RABBIT_MQ_HOME/sbin:$PATH
2.3 生效环境变量
$ source ~/.bash_profile
$ which rabbitmq-server
~/rabbitmq_server-3.9.15/sbin/rabbitmq-server
2.4 配置主机host
假定机器1主机名叫node1,机器IP是10.10.10.11,机器2的主机名叫node2,机器IP是10.10.10.12
# vim /etc/hosts
#rabbit
10.10.10.11 node1
10.10.10.12 node2
2.5 配置启动服务
- 机器1
$ cd ~/rabbitmq_server-3.9.15/sbin/
$ rabbitmq-server -detached
$ rabbitmq-plugins enable rabbitmq_management
$ rabbitmqctl start_app
$ rabbitmqctl cluster_status
- 机器2
$ cd ~/rabbitmq_server-3.9.15/sbin/
$ rabbitmq-server -detached
$ rabbitmqctl start_app
$ rabbitmqctl cluster_status
2.6 配置机器2连机器1节点
- 机器1将原来生成的
.erlang.cookie
文件改名
$ mv ~/.erlang.cookie ~/.erlang.cookie-31
- 机器1上执行同步机器2的
.erlang.cookie
文件
scp -r machine2user@10.10.10.10:.erlang.cookie .
- 停止机器1的服务
$ ps -ef|grep rabbit |grep -v grep
nm 17967 1 1 16:36 ? 00:00:06 /home/nm/3rd/erlang/lib/erlang/erts-12.3.1/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sbwtdcpu none -sbwtdio none -B i -- -root /home/nm/3rd/erlang/lib/erlang -progname erl -- -home /home/nm -- -pa -noshell -noinput -s rabbit boot -boot start_sasl -syslog logger [] -syslog syslog_error_logger false -kernel prevent_overlapping_partitions false -noshell -noinput
# 上面获取到进程号17967
$ kill -9 17967
- 重新启动机器1服务
$ cd ~/rabbitmq_server-3.9.15/sbin/
$ rabbitmq-server -detached
- 查看集群状态
$ rabbitmqctl cluster_status
2.7 配置机器2加入集群
- 停止机器2节点服务
$ cd ~/rabbitmq_server-3.9.15/sbin/
$ rabbitmqctl stop_app
- 加入集群
$ rabbitmqctl join_cluster rabbit@node1
Clustering node rabbit@node2 with rabbit@node1
- 启动机器2的服务
$ rabbitmqctl start_app
- 查看集群状态
$ rabbitmqctl cluster_status
2.8 配置机器1管理界面账号
- 机器1节点执行
$ rabbitmqctl add_user admin wodawoda
Adding user "admin" ...
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.
- 增加vhost
$ rabbitmqctl add_vhost "/woda_mq"
Adding vhost "/woda_mq" ...
- 配置权限
$ rabbitmqctl set_permissions -p "/woda_mq" admin ".*" ".*" ".*"
Setting permissions for user "admin" in vhost "/woda_mq" ...
- 设置用户为管理员
$ rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...
2.9 登录机器1服务的管理界面
访问http://10.10.10.11:15672
输入上面刚添加的用户名密码即可。