GreatSQL MGR + ProxySQL集群搭建方案
前言
ProxySQL
ProxySQL 是基于 MySQL 的一款开源的中间件的产品,是一个灵活的 MySQL 代理层,可以实现读写分离,支持 Query 路由功能,支持动态指定某个 SQL 进行缓存,支持动态加载(无需重启 ProxySQL 服务),故障切换和一些 SQL 的过滤功能。
GreatSQL MGR
GreatSQL
是适用于金融级应用的国内自主开源数据库,具备高性能、高可靠、高易用性、高安全等多个核心特性,可以作为MySQL或Percona Server的可选替换,用于线上生产环境,且完全免费并兼容MySQL或Percona Server。
GreatSQL
在高可靠方面的主要提升是针对MGR做了大量的改进和提升工作,进一步提升MGR的高可靠等级。包括但不限于以下提升:
地理标签
,提升多机房架构数据可靠性。读写节点动态VIP
,高可用切换更便捷。仲裁节点
,用更低的服务器成本实现更高可用。快速单主模式
,在单主模式下更快,性能更高。智能选主
,高可用切换选主机制更合理。全新流控算法
,使得事务更平稳,避免剧烈抖动。- 优化了节点加入、退出时可能导致性能剧烈抖动的问题。
- 解决磁盘空间爆满时导致MGR集群阻塞的问题。
- 解决了长事务造成无法选主的问题。
- 优化事务认证队列清理算法,规避每60s抖动问题。
- 修复了recover过程中长时间等待的问题。
了解更多详细信息可以前往➥https://gitee.com/GreatSQL/GreatSQL-Manual/blob/master/5-enhance/5-2-ha.md
部署环境介绍
部署架构图
GreatSQL MGR集群实现数据库复制功能及高可用。 Proxysql对应用程序提供访问,对MGR集群进行读写分离,集群状态检测,实现故障切换。
部署环境配置
部署软件详情
软件名 | 版本号 |
---|---|
GreatSQL | 8.0.32-24 |
ProxySQL | 2.5.4-58 |
部署环境准备
本次采用的是单机多实例的部署方式,如何部署单机多实例可以前往➥https://gitee.com/GreatSQL/GreatSQL-Manual/blob/master/6-oper-guide/6-6-multi-instances.md
IP | 端口 | 角色 |
---|---|---|
172.17.139.77 | 3306 | MGR01 |
172.17.139.77 | 3307 | MGR02 |
172.17.139.77 | 6032、6033 | ProxySQL |
$ cat /etc/system-release<br>Red Hat Enterprise Linux Server release 7.9 (Maipo)<br>$ uname -a<br>Linux gip 3.10.0-1160.el7.x86_64 #1 SMP Tue Aug 18 14:50:17 EDT 2020 x86_64 x86_64 x86_64 GNU/Linux<br>