RabbitMQ部署与集群搭建

目录

1. 环境说明及准备工作
2. APT 源安装RabbitMQ
3. 源码安装RabbitMQ
4. 节点加入集群


1. 环境说明及准备工作

0x01 环境说明

  • 系统:Ubuntu 16.04 LTS

0x02 准备工作

  • master 和 node 配置时间同步
  • 根据实际情况配置 master 和 node 的主机名
  • 在各个 mater 和 node上配置主机名解析

2. APT 源安装RabbitMQ

0x01 添加APT仓库密钥认证

# sudo apt-key adv --keyserver "hkps.pool.sks-keyservers.net" --recv-keys "0x6B73A36E6026DFCA"
# wget -O - "https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc" | sudo apt-key add -

0x02 配置APT源

# sudo tee /etc/apt/sources.list.d/bintray.rabbitmq.list <<EOF
deb https://dl.bintray.com/rabbitmq-erlang/debian xenial erlang
deb https://dl.bintray.com/rabbitmq/debian xenial main
EOF

0x03 安装 RabbitMQ

# sudo apt-get update -y
# sudo apt-get install -y rabbitmq-server

0x04 激活Web管理插件

# sudo rabbitmq-plugins enable rabbitmq_management

查看Web管理端口是否启动

# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      11884/beam.smp  
tcp        0      0 0.0.0.0:4369            0.0.0.0:*               LISTEN      11982/epmd      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      793/sshd        
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      11884/beam.smp  
tcp6       0      0 :::5672                 :::*                    LISTEN      11884/beam.smp  
tcp6       0      0 :::4369                 :::*                    LISTEN      11982/epmd      
tcp6       0      0 :::22                   :::*                    LISTEN      793/sshd  

备注,相关端口如下:

  • 4369 – erlang发现口
  • 5672 –client端通信口
  • 15672 – 管理界面ui端口
  • 25672 – server间内部通信口

浏览器访问: ip:15672 默认登入帐号及密码 guest/guest

若Web界面报如下问题

HTTP access denied: user 'guest' - User can only log in via localhost。

则需做如下配置

# sudo tee /etc/rabbitmq/rabbitmq.config <<EOF
[{rabbit, [{loopback_users, []}]}].
EOF

然后重启 rabbitmq

# systemctl restart rabbitmq-server.service

3. 源码安装RabbitMQ

0x01 安装依赖 Erlang

curl -L -O https://github.com/erlang/otp/archive/OTP-21.3.tar.gz
apt-get install make gcc autoconf libncurses5-dev 
tar -xf OTP-21.3.tar.gz -C /opt
cd /opt/otp-OTP-21.3
./otp_build autoconf
./configure --prefix=/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe 
make
make install

配置 Erlang 环境变量(/etc/profile)

# Erlang
ERLANG_HOME=/usr/local/erlang
export PATH=$PATH:$ERLANG_HOME/bin
export ERLANG_HOME

0x02 源码安装RabbitMQ

# sudo apt-key adv --keyserver "hkps.pool.sks-keyservers.net" --recv-keys "0x6B73A36E6026DFCA"
# wget -O - "https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc" | sudo apt-key add -
# wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.14/rabbitmq-server-generic-unix-3.7.14.tar.xz
# tar -xf rabbitmq-server-generic-unix-3.7.14.tar.xz -C /opt
# mv rabbitmq_server-3.7.14/ /usr/local/
# ln -s /usr/local/abbitmq_server-3.7.14 /usr/local/rabbitmq

配置 RabbitMQ 环境变量

# RabbitMQ
RABBITMQ_HOME=/usr/local/rabbitmq_server-3.7.14
export PATH=$PATH:$RABBITMQ_HOME/sbin
export RABBITMQ_HOME

4. 节点加入集群

0x01 将Master节点的 /var/lib/rabbitmq/.erlang.cookie 文件拷贝到节点主机

# scp /var/lib/rabbitmq/ .erlang.cookie root@192.168.1.168:/var/lib/rabbitmq/ 

注意:此时需要验证master和node的/var/lib/rabbitmq/ .erlang.cookie文件的 md5sum 值是否一致,不一致则会导致 RabbitMQ 无法启动。

# md5sum /var/lib/rabbitmq/.erlang.cookie 
715013625977fb1c373069e3dae753f0  /var/lib/rabbitmq/.erlang.cookie

0x02 停止node节点上的 Erlang 虚拟机

# rabbitmqctl stop_app 

0x03 node 加入集群

# rabbitmqctl join_cluster rabbit@rbtmq_master
Clustering node rabbit@rbtmq_node1 with rabbit@rbtmq_master

启动 Erlang 虚拟机

# sudo rabbitmqctl start_app

验证集群状态

# sudo rabbitmqctl cluster_status
Cluster status of node rabbit@rbtmq_master ...
[{nodes,[{disc,[rabbit@rbtmq_master,rabbit@rbtmq_node1]}]},
 {running_nodes,[rabbit@rbtmq_node1,rabbit@rbtmq_master]},
 {cluster_name,<<"rabbit@rbtmq_master">>},
 {partitions,[]},
 {alarms,[{rabbit@rbtmq_node1,[]},{rabbit@rbtmq_master,[]}]}]
posted @ 2019-04-24 17:23  McSiberiaWolf  阅读(295)  评论(0)    收藏  举报