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


版权声明:本文为fqydhk原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/fqydhk/article/details/80430503

智能推荐

docker搭建pxc集群

前言 随着mysql存储的数据量越来越大,mysql查询单表时的响应速度也会随之变慢,尤其是当单节点承载的数据量超出一定的范围后,比如单表超过2000万之后,查询响应速度会下降的很快,因此,一方面可以考虑mysql集群,另一方面可以考虑读写分离,这两种方案的出发点不同,集群更多是从单节点可容纳的并发连接数考虑,比如单节点的mysql服务器支持的最大连接数是有限的;而读写分离可以提升mysql服务总...

Docker Swarm集群搭建

Docker Swarm 集群搭建 环境信息: OS : MacOS Mojave Docker Engine : 19.03.5 Docker Machine: 0.16.2 VirtualBox : 6.1.0-135406-OSX Boot2docker : v19.03.5 百度网盘(提取码: q3wd) 在本地通过VirtualBox创建虚拟集群; 1. 创建节点 通过docker-ma...

Docker 搭建 hadoop 集群

1. Docker的基础命令 $ sudo yum install docker-io $ sudo service docker start $ sudo chkconfig docker on $ sudo docker pull centos $ sudo docker images centos $ sudo docker run -i -t centos /bin/bash 删除: do...

Docker搭建Zookeeper集群

创建网络并配置ip 众所周知bridge模式是Docker默认的网络设置,此模式会为每一个容器分配Network Namespace、设置IP等,并将一个主机上的Docker容器连接到一个虚拟网桥上。 查看网卡信息 搭建zookeeper集群 这里使用docker-compose搭建,就不用一个一个容器去创建了 创建docker-compose.yml文件,输入一下内容: 查看容器 验证是否搭建成...

Swarm搭建Docker集群

Swarm介绍 Swarm是Docker公司在2014年12月初发布的一套较为简单的工具,用来管理Docker集群,它将一群Docker宿主机变成一个单一的,虚拟的主机。Swarm使用标准的Docker API接口作为其前端访问入口,换言之,各种形式的Docker Client(docker client in go, docker_py, docker等)均可以直接与Swarm通信。Swarm几...

猜你喜欢

docker 搭建 zookeeper集群

先新建docker compose.yml 拉取zookeeper镜像(直接docker pull zookeeper),通过docker compose启动镜像后修改第一个zoo1容器的/conf/zoo.cfg,echo "clientPort=2181" >> zoo.cfg 写入zoo.cfg(官网拉写来的zoo.cfg没有这个配置项,启动会报错),然后将这...

docker搭建rabbitmq集群

docker搭建系列 docker环境搭建zk集群 docker搭建redis集群 docker环境搭建elasticsearch docker搭建rabbitmq集群 docker环境搭建ELK 序 本文主要讲述如何用docker搭建rabbitmq的集群。 下载镜像 采用bijukunjummen该镜像。 运行 启动集群 默认启动了三个节点 查看 访问 http://192.168.99.10...

Kafka docker 集群搭建

下载zookeeper和 kafka 镜像: 创建一个docker文件夹 目录下创建一个docker-compose.yml文件 启动docker-compose 启动多个kafka 节点,比如3个 自动扩容     或者启动的时候一次直接启动三个kafka 进入Kafka容器:  创建一个topic 查看新创建的topic: 发布消息: 往broker Kafka ...

docker搭建nacos集群

使用Docker搭建Nacos集群非常简单,只需要三步,前提是必须已经安装了Mysql和Nginx,没有安装的自己去百度,这里就不介绍了, 首先使用docker进行镜像拉取 下载完成之后 依次启动 3个Nacos, 1、nacos1 2、nacos2 3、nacos3 注意:上面的192.168.56.10是我本机的地址,你们需要改成自己的本机虚拟机地址,还有什么的Mysql配置账号密码、数据库名...

Mybatis基础(part 1)

一.mybatis调用SQL语句 1.使用XML配置SQL语句 在SqlMapConfig.xml配置数据源并指定映射配置文件的位置(每个DAO对应的XML文件,该文件映射了DAO的全限定类名)   2.使用注解配置sql语句 在SqlMapConfig.xml配置数据源和class属性(指定被注解的dao全限定类名),在DAO上写注解。 用注解来配置,故此处使用class属性指定被注解...