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
智能推荐
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属性指定被注解...
