栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

haproxy做mysql负载均衡

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/450568.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号