haproxy做mysql负载均衡

1 安装PXC镜像
docker pull percona/percona-xtradb-cluster:5.7.21  
2 为PXC镜像改名
docker tag percona/percona-xtradb-cluster:5.7.21 pxc
3 创建net1网段
docker network create --subnet=172.18.0.0/16 net1
4 创建5个数据卷  
docker volume create --name v1
docker volume create --name v2
docker volume create --name v3
docker volume create --name v4
docker volume create --name v5

5 创建备份数据卷(用于热备份数据)
docker volume create --name backup
6 创建5节点的PXC集群

注意,每个MySQL容器创建之后,因为要执行PXC的初始化和加入集群等工作,耐心等待1分钟左右再用客户端连接MySQL。另外,必须第1个MySQL节点启动成功,用MySQL客户端能连接上之后,再去创建其他MySQL节点。

创建第1个MySQL节点
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -v v1:/var/lib/mysql -v backup:/data --privileged --name=node1 --net=net1 --ip 172.18.0.2 pxc

#创建第2个MySQL节点
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -v v2:/var/lib/mysql -v backup:/data --privileged --name=node2 --net=net1 --ip 172.18.0.3 pxc
#创建第3个MySQL节点
docker run -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -v v3:/var/lib/mysql --privileged --name=node3 --net=net1 --ip 172.18.0.4 pxc
#创建第4个MySQL节点
docker run -d -p 3309:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -v v4:/var/lib/mysql --privileged --name=node4 --net=net1 --ip 172.18.0.5 pxc
#创建第5个MySQL节点
docker run -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -v v5:/var/lib/mysql -v backup:/data --privileged --name=node5 --net=net1 --ip 172.18.0.6 pxc

brew install haproxy

vim haproxy/haproxy.cfg

global

    daemon  #以后台形式运行harpoxy

########默认配置############

defaults

    mode tcp   #设置HAProxy默认的工作模式,有tcp,http,health三种



    timeout connect 5000ms  #连接超时

    timeout client 30000ms   #客户端超时

    timeout server 30000ms  #服务器超时

    timeout check 2000      #心跳检测超时

    log 127.0.0.1 local0 err



########统计页面配置########

listen test1   #这里是配置负载均衡,test1是名字,可以任意

    bind 0.0.0.0:9000  #这里是监听的IP地址和端口,端口号可以在0-65535之间,要避>免端口冲突



    mode tcp  #连接的协议,这里是tcp协议

    option  mysql-check user root

    server s1 127.0.0.1:3306  #负载的机器

    server s2 127.0.0.1:3307

    server s3 127.0.0.1:3308

haproxy -f ~/haproxy/haproxy.cfg -d

spring:
  application:
    name: cloud-payment-service
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:9000/user?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: abc123456
    druid:
      test-on-borrow: false
      test-while-idle: true
      test-on-return: false
      validation-query: select 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值