双vip通道MySQL高可用集群

双vip通道MySQL高可用集群

项目环境:

8台服务器(2G,2核) Centos7,Mysqlrouter8.0.21,Keepalived2.0.10,
Zabbix,Ansible

项目描述:

构建一个高可用、能实现读写分离的高效的 MySQL 集群,确保业务的稳定,能方便的监控
整个集群,以及可以批量的去部署和管理整个集群。
mysql双VIP集群架构

项目步骤:

  • 安装好 Centos7 的系统,部署好 Ansible,在所有的机器之间配置 SSH 免密通道
  • 通过 Ansible 去以二进制方式安装部署 MySQL,主要是通过编写好的脚本一键安装二进制
    版本的 MySQL
  • 使用 Ansible 安装 Mysqlrouter 和 Keepalived,在另外 2 台中间服务器上,实现负载均衡,读写分离、高可用的效果,在 Keepalived 上配置 2 个实例,实现 2 个 vip,互为 master 和 backup,提升资源利用率。
    keepailved配置:
    keepalived

MysqlRouter配置:
MysqlRouter

  • 在 3 台 MySQL 服务器上配置好主从复制,建立读写分离使用的用户,形成一个 master+2个 slave 节点(半同步+GTID)的集群,提取数据库服务,部署一台延迟备份的服务器(延迟 30 分钟)
    初步验证读写分离:
    读写分离1

  • 部署好 Zabbix 监控系统

  • 尝试部署 Mysql 的 failover 插件(自己编写脚本或者使用 NHA),实现自动的故障切换,确保 master 宕机,能自动提升另外一台 slave 为主,另外一台 slave 切换到新的 master 上获得二进制日志

  • 验证测试读写分离和高可用以及主从的 failover
    用另外的机器验证:
    读写分离2

  • 使用压力测试软件(sysbench)测试整个 MySQL 集群的性能(并发性能指标 QPS、TPS、IOPS)
    压力测试:
    压力测试

项目心得:

  • 集群的架构以及配置要非词细心,脚本要提前准备好,边做边改进。
  • 对 MySQL 的集群和高可用有了深入的理解。
  • 对自动化批量部署和监控有了更多的应用和理解。
  • 对 Keepalived 的配置需要更加细心和 IP 地址的规划有了新的认识。
  • 对双 VIP 的使用,添加 2 条负载均衡记录实现 DNS 轮询,达到向 2 个 vip 负载均衡器上分流。

优化思路

数据库的切分:垂直和水平切分

  • 垂直:
    库:将一台机器上的库,分到多个机器上
    表:将一个大表拆分成多个小表 --》将字段拆分了
  • 水平:
    库:将一个库里的多个表,分到多个库上,尽量一个表对应一个库
    表:将一个大表拆成多个小表 ,将不同的行分到不同的表里
    –》按照时间来拆分也是可以的

思路:

1.升级硬件
2.优化操作系统:优化linux的内核参数,网络参数,文件系统的参数等
3.优化MySQL的参数:例如buffer-pool的大小,等其他的参数
4.优化SQL语句 + 创建索引
5.加缓存 + 加中间件
6.分表分库
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值