交流QQ号:555913397
有什么问题可以加群大家一起交流
Docker安装
安装环境:Centos7
1.安装docker
yum install -y docker
2.配置阿里云docker镜像服务
在阿里云容器镜像服务里有个镜像加速器,在里面可以得到私有的镜像加速地址
下面编辑docker镜像加速
vi /etc/docker/daemon.json
会得到如下内容
{}
下面来改造它
{
"registry-mirrors": ["https://你的私有地址.mirror.aliyuncs.com"]
}
保存文件进行docker配置文件重载
sudo systemctl daemon-reload
3.配置docker开机启动
systemctl enable docker.service
4.启动docker
systemctl start docker.service
Haproxy创建
1.下载Haproxy镜像
docker pull haproxy
2.创建docker网卡
docker network --subnet=172.100.100.0/16 rabbitmqnet
3.创建Haproxy配置文件
创建文件命令
vi /home/haproxy/haproxy.cfg
粘贴如下代码到里面
global
maxconn 10000 #默认最大连接数
log 127.0.0.1 local0 #[err warning info debug]
chroot /usr/local/sbin #chroot运行的路径
daemon #以后台形式运行haproxy
pidfile /var/run/haproxy.pid #haproxy的pid存放路径,启动进程的用户必须有权限访问此文件
defaults
log 127.0.0.1 local3
mode http #所处理的类别 (#7层 http;4层tcp )
maxconn 10000 #最大连接数
option dontlognull #不记录健康检查的日志信息
option redispatch #serverId对应的服务器挂掉后,强制定向到其他健康的服务器
#stats refresh 30 #统计页面刷新间隔
retries 3 #3次连接失败就认为服务不可用,也可以通过后面设置
balance roundrobin #默认的负载均衡的方式,轮询方式
#balance source #默认的负载均衡的方式,类似nginx的ip_hash
#balance leastconn #默认的负载均衡的方式,最小连接
timeout connect 5000 #连接超时
timeout client 50000 #客户端超时
timeout server 50000 #服务器超时
timeout check 2000 #心跳检测超时
####################################################################
listen http_front
bind 0.0.0.0:5669 #监听端口
stats refresh 30s #统计页面自动刷新时间
stats uri /haproxy?stats #统计页面url
stats realm Haproxy Manager #统计页面密码框上提示文本
stats auth admin:admin #统计页面用户名和密码设置
#stats hide-version #隐藏统计页面上HAProxy的版本信息
#####################我把RabbitMQ的管理界面也放在HAProxy后面了###############################
listen rabbitmq_admin
bind 0.0.0.0:5671
server rabbitmq3 172.100.100.4:15674
server rabbitmq2 172.100.100.3:15673
server rabbitmq1 172.100.100.2:15672
####################################################################
listen rabbitmq_cluster
bind 0.0.0.0:5670
option tcplog
mode tcp
timeout client 3h
timeout server 3h
option clitcpka
balance roundrobin #负载均衡算法(#banlance roundrobin 轮询,balance source 保存session值,支持static-rr,leastconn,first,uri等参数)
#balance url_param userid
#balance url_param session_id check_post 64
#balance hdr(User-Agent)
#balance hdr(host)
#balance hdr(Host) use_domain_only
#balance rdp-cookie
#balance leastconn
#balance source //ip
server rabbitmq3 172.100.100.4:5674 check inter 5s rise 2 fall 3 #check inter 2000 是检测心跳频率,rise 2是2次正确认为服务器可用,fall 3是3次失败认为服务器不可用
server rabbitmq2 172.100.100.3:5673 check inter 5s rise 2 fall 3
server rabbitmq1 172.100.100.2:5672 check inter 5s rise 2 fall 3
4.创建Haproxy容器
docker run -d -p 5669-5671:5669-5671 \
-v /home/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg \
--name=haproxy \
--ip=172.100.100.1 \
--net=rabbitmqnet \
haproxy
现在完成了haproxy的配置.
创建rabbitmq集群
1.下载rabbitmq镜像
docker pull rabbitmq:management
2.创建rabbitmq容器
第一个rabbitmq容器
rabbitmqcrun -d \
-p 5672:5672 \
-p 15672:15672 \
-e RABBITMQ_NODENAME=rabbitmq1 \
-e RABBITMQ_ERLANG_COOKIE='CURIOAPPLICATION' \
-h rabbitmq1 \
--name=rabbitmq1 \
--net=rabbitmqnet \
--ip=172.100.100.2 \
rabbitmq:management
第二个rabbitmq容器
rabbitmqcrun -d \
-p 5673:5672 \
-p 15673:15672 \
-e RABBITMQ_NODENAME=rabbitmq2 -\
e RABBITMQ_ERLANG_COOKIE='CURIOAPPLICATION' \
-h rabbitmq2 \
--name=rabbitmq2 \
--net=rabbitmqnet \
--ip=172.100.100.3 \
rabbitmq:management
第三个
rabbitmqcrun -d \
-p 5674:5672 \
-p 15674:15672 \
-e RABBITMQ_NODENAME=rabbitmq3 \
-e RABBITMQ_ERLANG_COOKIE='CURIOAPPLICATION' \
-h rabbitmq3 \
--name=rabbitmq3 \
--net=rabbitmqnet \
--ip=172.100.100.4 \
rabbitmq:management
3.配置rabbitmq加入集群
分别进入第二和第三个rabbitmq容器进行如下配置
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbitmq1@rabbitmq1
rabbitmqctl start_app
大功告成
进入haproxy的web控制端查看
地址:你的ip:5669/haproxy?stats
进入rabbitmq的web控制端查看
地址你的ip:5671