• 潭州课堂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 

  • 相关阅读:
    怎样绘制一个三角形边框
    怎样绘制一条线段
    怎样绘制矩形
    怎样判断浏览器是否支持canvas
    怎样创建一个canvas画布环境
    怎样理解Canvas
    怎样删除一条Cookie
    怎样在浏览器端增加一条Cookie
    怎样限制第三方Cookie
    怎样理解第三方Cookie
  • 原文地址:https://www.cnblogs.com/gdwz922/p/10312863.html
Copyright © 2020-2023  润新知