docker搭建 Haproxy+rabbitmq集群

交流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


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值