zoukankan      html  css  js  c++  java
  • docker技术快速实现前后端项目的集群化⑥基于haproxy创建pxc集群的负载均衡

    docker技术快速实现前后端项目的集群化⑥基于haproxy创建pxc集群的负载均衡

    # 创建存放haproxy的映射目录和负载均衡配置
    # mkdir /data/haproxy
    # vim /data/haproxy/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   /dbs
        #统计报告格式
        stats realm     Global statistics
        #登陆帐户信息
        stats auth  admin:admin
    #数据库负载均衡
    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 
        server  MySQL_4 172.18.0.5:3306 check weight 1 maxconn 2000
        server  MySQL_5 172.18.0.6:3306 check weight 1 maxconn 2000
        #使用keepalive检测死链
        option  tcpka

    启动haproxy的容器,并且进入容器启动Haproxy这个程序

    # 启动名称为h1的docker

    [root@server01 haproxy]# docker run -it -d -p 4001:8888 -p 4002:3306 -v /data/haproxy:/usr/local/etc/haproxy --name h1 --privileged --net=net1 --ip 172.18.0.7 haproxy

    # 进入容器,启动Haproxy程序

    [root@server01 haproxy]# docker exec -it h1 /bin/bash

    root@f9ee51b26ac0:/# haproxy -f /usr/local/etc/haproxy/haproxy.cfg

    创建haproxy监控mysql数据库的专用账户(不能登录数据库的一个账号)

    create user 'haproxy'@'%' identified by '';

    # 登录监控页面

    http://10.11.0.206:4001/dbs

    通过haproxy进行操作

    关闭其中的两个节点,可以看到haproxy就将两个剔除掉了

    通过haproxy插入数据可以正常同步到没有关闭的节点中,重新启动停掉的节点后能正常同步新增加的数据,说明集群可以正常运行

    对其中的node mysql节点进行同步端口屏蔽,插入数据可以验证数据库的强一致性

    进入pxcnode02进行数据强一致性测试

    [root@server01 ~]# docker exec -u 0 -it pxcnode02 sh

    sh-4.2# yum install iptable-service -y

    # 添加防火墙策略,关闭数据同步的端口

    sh-4.2# iptables -A INPUT -p tcp --dport 4567 -j DROP

    sh-4.2# iptables -A OUTPUT -p tcp --dport 4567 -j DROP

    # 向pxcnode02中写入数据发现无法同步

    通过root权限进入容器的方法

    # docker exec -it -u 0 pxcnode01 /bin/bash

  • 相关阅读:
    Building a Space Station POJ
    Networking POJ
    POJ 1251 Jungle Roads
    CodeForces
    CodeForces
    kuangbin专题 专题一 简单搜索 POJ 1426 Find The Multiple
    The Preliminary Contest for ICPC Asia Shenyang 2019 F. Honk's pool
    The Preliminary Contest for ICPC Asia Shenyang 2019 H. Texas hold'em Poker
    The Preliminary Contest for ICPC Asia Xuzhou 2019 E. XKC's basketball team
    robotparser (File Formats) – Python 中文开发手册
  • 原文地址:https://www.cnblogs.com/reblue520/p/13409947.html
Copyright © 2011-2022 走看看