潭州课堂25班:Ph201805201 django 项目 第四十五课 mysql集群和负载均衡(课堂笔记)

2.使用docker安装Haproxy

一、为什么要使用数据库集群和负载均衡?

1.高可用

2.高并发

3.高性能

 

二、mysql数据库集群方式

三、使用docker安装PXC

1.拉取PXC镜像

docker pull percona/percona-xtradb-cluster:5.7

2.创建volume卷

docker volume create --name v1
docker volume create --name v2
docker volume create --name v3

3.创建network网络

docker network create --subnet=172.18.0.0/24 net1

4.运行PXC容器

# 创建node1
docker run -d -p 8002:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=qwe123 -e XTRABACKUP_PASSWORD=qwe123 -e CLUSTER_NAME=PXC --name=node1 --net=net1 --ip 172.18.0.2 percona/percona-xtradb-cluster:5.7

# 创建node2
docker run -d -p 8003:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=qwe123 -e XTRABACKUP_PASSWORD=qwe123 -e CLUSTER_NAME=PXC -e CLUSTER_JOIN=node1 --name=node2 --net=net1 --ip 172.18.0.3 percona/percona-xtradb-cluster:5.7

# 创建node3
docker run -d -p 8004:3306 -v v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=qwe123 -e XTRABACKUP_PASSWORD=qwe123 -e CLUSTER_NAME=PXC -e CLUSTER_JOIN=node1 --name=node3 --net=net1 --ip 172.18.0.4 percona/percona-xtradb-cluster:5.7

  

么要使用Haproxy?

1.高性能

2.使用docker安装Haproxy

# 拉取haproxy image
docker pull haproxy

# 在虚拟机中创建保存haproxy配置文件的目录
mkdir -p ~/haproxy_conf/
# 创建haproxy.cfg配置文件
global
	#工作目录
	chroot /usr/local/etc/haproxy
	#日志文件,使用rsyslog服务中local5日志设备(/var/log/local5),等级info
	log 127.0.0.1 local5 info
	#守护进程运行
	daemon

defaults
	log	global
	mode	http
	option	httplog
	option	dontlognull
	timeout connect 5000
	timeout client  50000
    timeout server  50000

#监控界面
listen  admin_stats
	#监控界面的访问的IP和端口
	bind  0.0.0.0:8888
	#访问协议
    mode        http
	#URI相对地址
    stats uri   /
    stats realm     Global statistics
	#登陆帐户信息
    stats auth  admin:qwe123
#数据库负载均衡
listen  proxy-mysql
	#访问的IP和端口
	bind  0.0.0.0:3306
    #网络协议
	mode  tcp
	#负载均衡算法(轮询算法)
	#轮询算法:roundrobin
	#权重算法:static-rr
	#最少连接算法:leastconn
	#请求源IP算法:source
    balance  roundrobin
	#日志格式
    option  tcplog
	#在MySQL中创建一个没有权限的haproxy用户,密码为空。Haproxy使用这个账户对MySQL数据库心跳检测
    option  mysql-check user haproxy
    server  MySQL_1 172.18.0.2:3306 check weight 1 maxconn 2000
    server  MySQL_2 172.18.0.3:3306 check weight 1 maxconn 2000
	server  MySQL_3 172.18.0.4:3306 check weight 1 maxconn 2000
    option  tcpka

# 运行容器
docker run -it -d -p 8078:8888 -p 8036:3306 -v  /home/pyvip/haproxy_conf:/usr/local/etc/haproxy --name h1 --privileged --net=net1 --ip 172.18.0.5 haproxy

# 进入haproxy容器,启动haproxy
docker exec -it h1 bash

# 加载haproxy配置文件
haproxy -f /usr/local/etc/haproxy/haproxy.cf

  

3.使用Navicat登录haproxy

数据库中创建一个没有任何权限的haproxy用户,密码为空,来测试mysql负载均衡是否正常。

CREATE USER 'haproxy'@'%' IDENTIFIED BY 

原文地址:https://www.cnblogs.com/gdwz922/p/10312863.html