rabbitmq集群,zookeeper集群
1、rabbitmq集群部署
官网部署文档:rabbitmq集群
rabbitmq集群最好是奇数节点,所以一般需要3台设备以上。
1.1 全部设备都初始化
cd /etc/yum.repos.d/
yum install -y wget
wget http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.aliyun.com/repo/epel-7.repo
mv CentOS-Base.repo CentOS-Base.repo.bak
yum clean all
yum makecache
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing$/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
1.2 全部设备下载rpm包
rabbitmq需要erlang的支持,版本对应文档:rabbitmq和erlang版本对应
下载rabbitmq-erlang的rpm包,扎到对应的版本,选择Assets,centos 7系统选择e17的rpm包
下载地址:rabbitmq-erlang
下载rabbitmq的rpm包,扎到对应的版本,选择Assets,centos 7系统选择e17的rpm包
下载地址:rabbitmq
1.3 设置hosts,然后再安装rpm包
第一台设备设置hosts,然后安装rpm包
vi /etc/hosts
192.168.116.133 rabbitmq-133
192.168.116.134 rabbitmq-134
192.168.116.135 rabbitmq-135
hostnamectl set-hostname rabbitmq-133
yum install -y erlang-23.3.4.1-1.el7.x86_64.rpm
yum install -y rabbitmq-server-3.8.16-1.el7.noarch.rpm
erl 进入erlang的命令行,查看版本为23
q(). 退出命令行
rabbitmqctl version 查看版本号
在rabbitmq-134设置hosts、安装rpm包
vi /etc/hosts
192.168.116.133 rabbitmq-133
192.168.116.134 rabbitmq-134
192.168.116.135 rabbitmq-135
hostnamectl set-hostname rabbitmq-134
yum install -y erlang-23.3.4.1-1.el7.x86_64.rpm
yum install -y rabbitmq-server-3.8.16-1.el7.noarch.rpm
erl 进入erlang的命令行,查看版本为23
q(). 退出命令行
rabbitmqctl version 查看版本号
在rabbitmq-135设置hosts、安装rpm包
vi /etc/hosts
192.168.116.133 rabbitmq-133
192.168.116.134 rabbitmq-134
192.168.116.135 rabbitmq-135
hostnamectl set-hostname rabbitmq-135
yum install -y erlang-23.3.4.1-1.el7.x86_64.rpm
yum install -y rabbitmq-server-3.8.16-1.el7.noarch.rpm
erl 进入erlang的命令行,查看版本为23
q(). 退出命令行
rabbitmqctl version 查看版本号
1.4 设置集群为镜像模式,集群节点互为对方节点的主节点
在rabbitmq-133操作
systemctl enable rabbitmq-server
systemctl start rabbitmq-server
安装网页插件,使得集群可以通过网页访问
rabbitmq-plugins enable rabbitmq_management
将主节点的cookie复制到其他2个节点
scp /var/lib/rabbitmq/.erlang.cookie root@192.168.116.134:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@192.168.116.135:/var/lib/rabbitmq/.erlang.cookie
rabbitmqctl cluster_status 查看集群状态
注意集群名字:加入集群要用到这个
Cluster name: rabbit@rabbitmq-133
在rabbitmq-134操作
安装网页插件,使得集群可以通过网页访问
rabbitmq-plugins enable rabbitmq_management
让cookie信息重新加载
systemctl restart rabbitmq-server
systemctl enable rabbitmq-server
加入集群
rabbitmqctl stop_app 停止服务
rabbitmqctl reset 重置数据,会把数据都删除
rabbitmqctl join_cluster rabbit@rabbitmq-133 加入集群
rabbitmqctl start_app 启动服务
rabbitmqctl set_policy ha-all "#" '{"ha-mode":"all"}' 设置集群为镜像模式
rabbitmqctl cluster_status 确认集群状态
在rabbitmq-135操作
安装网页插件,使得集群可以通过网页访问
rabbitmq-plugins enable rabbitmq_management
让cookie信息重新加载
systemctl restart rabbitmq-server
systemctl enable rabbitmq-server
加入集群
rabbitmqctl stop_app 停止服务
rabbitmqctl reset 重置数据,会把数据都删除
rabbitmqctl join_cluster rabbit@rabbitmq-133 加入集群
rabbitmqctl start_app 启动服务
rabbitmqctl set_policy ha-all "#" '{"ha-mode":"all"}' 设置集群为镜像模式
rabbitmqctl cluster_status 确认集群状态
1.5 确认集群是否同步
在rabbitmq-133创建一个账户
rabbitmqctl add_user aa test1234 添加账户
rabbitmqctl set_user_tags aa administrator 将账户打上最高权限标签
rabbitmqctl set_permissions aa ".*" ".*" ".*" 设置为最高权限
rabbitmqctl list_users
在rabbitmq-134,rabbitmq-135确认账户生成,证明数据同步成功,集群搭建完成
rabbitmqctl list_users
登录网页查看集群状态
http://192.168.116.133:15672/
2、Zookeeper集群部署
zookeeper官网:zookeeper
2.1 全部设备初始化
cd /etc/yum.repos.d/
yum install -y wget
wget http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.aliyun.com/repo/epel-7.repo
mv CentOS-Base.repo CentOS-Base.repo.bak
yum clean all
yum makecache
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing$/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
2.2 配置zookeeper-133
vi /etc/hosts
192.168.116.133 zookeeper-133
192.168.116.134 zookeeper-134
192.168.116.135 zookeeper-135
hostnamectl set-hostname zookeeper-133
下载java8
wget https://repo.huaweicloud.com/java/jdk/8u181-b13/jdk-8u181-linux-x64.tar.gz
tar xf jdk-8u181-linux-x64.tar.gz -C /usr/local/
cd /usr/local/
ln -s jdk1.8.0_181/ jdk
vi /etc/profile.d/java.sh 设置变量
#!/bin/bash
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib/:$JRE_HOME/lib
source /etc/profile.d/java.sh
java -version
下载zookeeper
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
tar xf zookeeper-3.4.14.tar.gz -C /usr/local/
cd /usr/local/
ln -s zookeeper-3.4.14 zookeeper
cd /usr/local/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg
mkdir /usr/local/zookeeper/data
mkdir /usr/local/zookeeper/logs
vi /etc/profile.d/zookeeper.sh 设置变量
export PATH=$PATH:/usr/local/zookeeper/bin
source /etc/profile.d/zookeeper.sh
vi /usr/local/zookeeper/bin/zkServer.sh 添加java变量路径
#!/usr/bin/env bash #在首行下面添加
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib/:$JRE_HOME/lib
vi /usr/local/zookpeer/conf/zoo.cfg 配置集群
maxClientCnxns=4096 #单机和集群修改这行
dataDir=/usr/local/zookeeper/data #单机和集群修改路径
dataLogDir=/usr/local/zookeeper/logs #单机和集群添加这行
autopurge.purgeInterval=1 #集群配置
server.1=zookeeper-133:2888:3888 #集群配置
server.2=zookeeper-134:2888:3888 #集群配置
server.3=zookeeper-135:2888:3888 #集群配置
vi /usr/lib/systemd/system/zookeeper.service
[Unit]
Description=zookeeper.service
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/zookeeper/bin/zkServer.sh start
ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop
ExecReload=/usr/local/zookeeper/bin/zkServer.sh restart
[Install]
WantedBy=multi-user.target
echo 1 >/usr/local/zookeeper/data/myid 设置ID号
systemctl daemon-reload
systemctl start zookeeper.service
2.3 配置zookeeper-134和zookeeper-135
zookeeper-134配置
按照上面安装配置,其他配置如下
vi /usr/local/zookpeer/conf/zoo.cfg 配置集群
maxClientCnxns=4096 #单机和集群修改这行
dataDir=/usr/local/zookeeper/data #单机和集群修改路径
dataLogDir=/usr/local/zookeeper/logs #单机和集群添加这行
autopurge.purgeInterval=1 #集群配置
server.1=zookeeper-133:2888:3888 #集群配置
server.2=zookeeper-134:2888:3888 #集群配置
server.3=zookeeper-135:2888:3888 #集群配置
echo 2 >/usr/local/zookeeper/data/myid
systemctl daemon-reload
systemctl start zookeeper.service
zookeeper-135配置
按照上面安装配置,其他配置如下
vi /usr/local/zookpeer/conf/zoo.cfg 配置集群
maxClientCnxns=4096 #单机和集群修改这行
dataDir=/usr/local/zookeeper/data #单机和集群修改路径
dataLogDir=/usr/local/zookeeper/logs #单机和集群添加这行
autopurge.purgeInterval=1 #集群配置
server.1=zookeeper-133:2888:3888 #集群配置
server.2=zookeeper-134:2888:3888 #集群配置
server.3=zookeeper-135:2888:3888 #集群配置
echo 3 >/usr/local/zookeeper/data/myid
systemctl daemon-reload
systemctl start zookeeper.service
2.4 查看集群节点状态
zookeeper-133查看
zkServer.sh status
Mode: follower 这个表示这个节点为从节点
ss -tnl 3888端口打开,证明集群服务启用
zookeeper-134查看
zkServer.sh status
Mode: leader 这个表示这个节点为主节点
ss -tnl
2888端口是只有主节点才会开启的端口
3888端口打开,证明集群服务启用
zookeeper-135查看
zkServer.sh status
Mode: follower 这个表示这个节点为从节点
ss -tnl 3888端口打开,证明集群服务启用
2.5 安装zookeeper客户端zoolnspector
Windows安装zookeeper客户端zoolnspector
需要先安装java环境
下载java:Windows-java8,然后直接打开安装
全部选择默认和下一步即可
右键此电脑点击属性
选择高级系统设置
选择环境变量
选择新建系统变量
输入java的安装目录,设置为变量
变量名:JAVA_HOME
变量值:C:\Program Files\Java\jdk1.8.0_181
然后再新建classpath变量
classpath
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
最后在系统变量找到Path,点击编辑,修改Path变量
新建多一个java路径
在Path添加
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
最后重启下系统,让变量生效。
重启后打开CMD,查看能否识别到java
安装下载zoolnspector:zoolnspector
将解压好的目录放到C盘
C:\ZooInspector\build\zookeeper-dev-ZooInspector.jar 双击打开
点击连接zookeeper集群
输入集群内的任一节点的IP和端口
在zookeeper-135连接集群,注册一个服务
/usr/local/zookeeper/bin/zkCli.sh -server 192.168.116.134
create /node1 "192.168.116.133:8080"
get /node1
在客户端确认服务注册成功