rabbitmq 3.6集群搭建

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qzqanzc/article/details/87864542

0. 绪论

最近项目在做mq的技术选型,最终确定采用rabbitMq。需要对rabbitMq进行基准测试,所以在服务器上划出3个虚拟机节点。用这三台虚拟机做基准测试。(ps 以下命令都是用root 用户执行,如果不是root 用户那么命令前加sudo)

1. 集群规划

虚拟机操作系统采用的是centos 7.X

节点ip 主机名称
192.168.234.220 node1
192.168.234.221 node2
192.168.234.222 node3
配置项
CPU 4Core
MEMORY 10G
DISK 1T
NETWORK NAT

2. 版本选择

erlang 版本是 19.3.6
rabbitmq 版本是 3.6.16

3. 环境准备

  1. 修改hostname

在 192.168.234.220 节点

# hostnamectl set-hostname node1
# cat >> /etc/hosts <<EOF
192.168.234.220   node1 
192.168.234.221   node2 
192.168.234.222   node3 
EOF

在 192.168.234.221 节点

# hostnamectl set-hostname node2
# cat >> /etc/hosts <<EOF
192.168.234.220   node1 
192.168.234.221   node2 
192.168.234.222   node3 
EOF

在 192.168.234.222 节点

# hostnamectl set-hostname node3
# cat >> /etc/hosts <<EOF
192.168.234.220   node1 
192.168.234.221   node2 
192.168.234.222   node3 
EOF
  1. 安装rabbitMq 依赖
    erlang 19.3.6

google group https://groups.google.com/forum/#!msg/rabbitmq-users/kXkI-f3pgEw/UFowJIK4BQAJ

socat
logrotate

node1,node2,node3操作流程
erlang 采用官方提供的 Zero-dependency Erlang from RabbitMQ

Zero dependency Erlang RPM package for running RabbitMQ can be installed via Yum repositories on Bintray and Package Cloud as well as a direct download. As the name suggests, the package strips off some Erlang modules and dependencies that are not essential for running RabbitMQ.
英文不好不会翻译抱歉,提供官方链接 http://www.rabbitmq.com/install-rpm.html#install-erlang,自己研究下。

# cat > /etc/yum.repos.d/rabbitmq-erlang.repo <<EOF
[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/19/el/7
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1
EOF
// 安装erlang
# yum install erlang -y
// 安装  socat
# yum install  socat -y
// 安装 logrotate
# yum install logrotate -y

下载安装包(ps 因为采用3.6.16版本的rabbitMq,官网已经没有该版本配套的文档和软件包链接,通过github下载)

扫描二维码关注公众号,回复: 5971038 查看本文章

rabbitMq 3.6.16 github 页面url https://github.com/rabbitmq/rabbitmq-server/releases?after=v3.7.8-rc.3

// 下载包
# wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_16/rabbitmq-server-3.6.16-1.el6.noarch.rpm

4. node1,node2,node3 安装rabbitMq

// 在node1 node2 node3 节点上用rpm 安装rabbitMq
rpm -ivh rabbitmq-server-3.6.16-1.el6.noarch.rpm
//  启动rabbitmq-server
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
// 启用rabbitmq_management
# rabbitmq-plugins enable rabbitmq_management
// 创建管理用户
# rabbitmqctl add_user admin admin
// 将admin 用户赋予管理员角色
# rabbitmqctl set_user_tags admin administrator
// grant the 'admin' user permission to modify, write, and read all vhosts.
# rabbitmqctl set_permissions -p / admin  ".*" ".*" ".*"

5. 集群安装

  1. copy erlang.cookie 在node1上执行
# scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/
# scp /var/lib/rabbitmq/.erlang.cookie root@node3:/var/lib/rabbitmq/
# rabbitmqctl cluster_status
  1. node2,3上执行加入集群指令
# systemctl restart rabbitmq-server
# rabbitmqctl stop_app
# rabbitmqctl join_cluster rabbit@node1
# rabbitmqctl start_app
  1. node1 查询集群状态
# rabbitmqctl cluster_status

Cluster status of node 'rabbit@node1'
[{nodes,[{disc,['rabbit@node1']},
         {ram,['rabbit@node3','rabbit@node2']}]},
 {running_nodes,['rabbit@node3','rabbit@node2','rabbit@node1']},
 {cluster_name,<<"rabbit@node1">>},
 {partitions,[]},
 {alarms,[{'rabbit@node3',[]},
          {'rabbit@node2',[]},
          {'rabbit@node1',[]}]}]
 // 如果出现以上提示集群加入成功

management web 如下
在这里插入图片描述

6. 配置镜像队列

node1 节点上执行

rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all"}'

或者是 登录management 页面添加policy
在这里插入图片描述

参考链接:
http://www.rabbitmq.com/install-rpm.html
http://www.rabbitmq.com/clustering.html
http://www.rabbitmq.com/ha.html
https://www.howtoforge.com/how-to-set-up-rabbitmq-cluster-on-centos-7/

猜你喜欢

转载自blog.csdn.net/qzqanzc/article/details/87864542