热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

zCloud的dbPaaS能力(三):高可用管理Part2MySQL

zCloud数据库云平台将最佳实践融入到对MySQL高可用的管理,并紧贴市场需要,选择了成熟稳定的数据库中间件(HAProxy、KeepAlive、ProxySQL、Shardin
zCloud的dbPaaS能力(三):高可用管理 Part2 - MySQL

上一篇介绍了zCloud的dbPaaS能力(三):高可用管理的Oracle部分(我是传送门~),本篇再详细介绍zCloud对MySQL高可用管理的最佳实践。

一直以来,企业IT环境中的重要组件——数据库是以商业数据库为主,如Oracle、DB2、SQL Server等。随着业务移动化和互联网化的发展,及企业对技术的开源可控意识的强化,IT应用架构向微服务化转变,并由于低成本的考虑,在互联网以及金融行业,一些重要的业务开始使用新的开源架构,MySQL作为主流的开源数据库之一,在业界流行甚广。MySQL活跃的社区和使用者,造就了其生态的丰富,如,高可用的方案就有很多: MGR、主从架构、MMM、GaleraCluster ,还有中间件的高可用方案KeepAlived+HAProxy、ProxySQL、Heartbeat+SAN…

可对于企业而言,在选择方案和组件时无所适从:



  • 难以选择合适的配套产品:与MySQL数据库适配的产品没有统一标准,五花八门,性能差异参差不齐,很多组件跟不上新版本升级和适配

  • 难以整合维护整体环境:DBA和传统企业的运维团队,没有足够的开发力量整合开发并维护MySQL数据库运行所必须的整体环境

  • MySQL的组件需要必要的二次开发和定制,以适应和满足企业自身需要

zCloud数据库云平台将最佳实践融入到对MySQL高可用的管理,并紧贴市场需要,选择了成熟稳定的数据库中间件(HAProxy、KeepAlive、ProxySQL、ShardingSphere等),满足MySQL集群的自动高可用、负载均衡、读写分离、分库分表等高级特性。同时zCloud还支持多种MySQL集群的自动化部署和管理(MGR、主从架构、MMM、GaleraCluster)。中间件加集群的方案,能够满足丰富的MySQL应用场景。MySQL高可用管理,不仅支持自动高可用切换、手动切换、数据校验,且可以快速搭建跨机房、跨地域的可靠容灾环境,帮助企业用户构建大规模的业务集群。

MySQL高可用架构.png


zCloud涉及的高可用组件和架构简介

1、高可用中间件 – HAProxy+Keepalived

zCloud使用Keepalived检测HAproxy集群中服务器的健康状况,以及实现HAproxy主备之间进行故障转移,用来防止单点故障的发生,Keepalived通过请求一个VIP来达到请求真实IP地址的功能,而VIP能够在一台机器发生故障时候,自动漂移到另外一台机器上,从来达到了高可用HA功能。

HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,zCloud使用HAproxy四层代理为ProxySQL提供高可用中间件代理。



  • HAProxy作为MySQL的连接代理,属于业界主流方案,经过大量实践验证,非常成熟;

  • HAProxy本身只做网络转发,不涉及任何MySQL兼容性问题,非常稳定;

  • HAProxy在中间层,避免了Keepalived直接与MySQL数据库交互,可以防止由于主从脑裂导致的数据不一致


2、数据库中间件 – ProxySQL

ProxySQL能够方便地实现SQL的读写分离和负载均衡,并与其他中间件对比体现出功能丰富,易用性、兼容性等优势。



  • 100%兼容MySQL和SQL语句

  • 高性能,单进程支持1万以上连接;支持连接池;C语言编写性能较之Java中间件高出数倍;支持网络连接多路复用

  • 自身高可用,中间件进程故障会自动启动新的进程

  • 支持读写分离、查询重写和SQL流量镜像

  • 支持负载均衡,也可与HAProxy结合实现负载均衡

  • Query Cache功能,由于MySQL自带功能,多维度控制语句缓存方式

  • 自动下线/上线后端DB

  • 便捷管理,在线更改配置无需重启;详细状态统计,SQL性能和SQL语句统计等















































































































































ProxySQLMariaDB axScaleHAProxyNginxMySQL Router
开源×
应用层负载均衡×××
权重平衡
MySQL主从复制×
MySQL组复制×××
MySQL NDB集群×××
Galera 复制×
连接池×××
前后端连接数限制×
单用户连接限制××××
连接复用××××
毫秒级超时控制××
读写分离×××
分片×××
防火墙×××
查询缓存××××

3、Orchestrator

go编写的MySQL高可用性和复制拓扑管理工具,支持复制拓扑结构的调整,自动故障转移和手动主从切换等。大致有如下特点:自动发现MySQL的复制拓扑、重构复制关系、检测主异常,并可以自动或手动恢复,通过Hooks进行自定义脚本。


4、MySQL主从架构

一主多从,最多支持九个从节点。便于维护和扩展。



  • 成本低,部署快速方便

  • 支持读写分离

  • 由于同步延迟造成数据一致性问题


5、MySQL MMM架构

MMM即Master-Master Replication Manager for MySQL(mysql主主复制管理器),是关于mysql主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),这个套件也能基于标准的主从配置的任意数量的从服务器进行读负载均衡,所以你可以用它来在一组居于复制的服务器启动虚拟ip,除此之外,它还有实现数据备份、节点之间重新同步功能的脚本。

MySQL本身没有提供Replication Failover的解决方案,通过MMM方案能实现服务器的故障转移,从而实现mysql的高可用。



  • 安全、稳定性较高,可扩展性好

  • 对服务器数量要求至少三台及以上

  • 对双主(主从)复制性要求较高

  • 可实现读写分离


6、Galera Cluster

Galera Cluster for MySQL是一套基于同步复制的多主MySQL集群解决方案。



  • 同步复制

  • 多主服务器的拓扑结构

  • 可以在任意节点上进行读写

  • 自动剔除故障节点

  • 自动加入新节点

  • 真正行级别的并发复制

  • 客户端连接跟操作单台MySQL数据库的体验一致


7、MGR

MySQL Group Replication(MGR)是MySQL官方在5.7.17版本引进的一个数据库高可用与高扩展的解决方案,以插件形式提供。MGR基于分布式paxos协议,实现组复制,保证数据一致性。内置故障检测和自动选主功能,只要不是集群中的大多数节点都宕机,就可以继续正常工作。提供单主模式与多主模式,多主模式支持多点写入。



  • 避免脑裂:MGR中不会出现脑裂的现象

  • 数据一致性保障:MGR的冗余能力很好,能够做到同时宕机的成员不超过半数便不会导致数据丢失,且宕机的服务器重启后,不再需要特殊的处理就可以加入组

  • 多节点写入支持:多写模式下支持集群中的所有节点都可以写入


zCloud的MySQL高可用管理

接下来介绍zCloud是怎样管理MySQL高可用的。


1、高可用环境的拓扑图

下图是MySQL一主两从且使用了高可用组件的拓扑图。中间件也做了冗余,并通过VIP提供统一访问入口。

image20200710172531523.png

image20200710172554066.png


2、支持自动/手动切换

zCloud支持手动和自动的高可用切换。当主节点不可用时,集群中的某从节点会自动变为Master角色,提供读和写的服务。

image20200710181128827.png

zCloud支持多种数据库高可用切换模式的配置,应对企业不同场景下对高可用切换的实际需求。并能配置主从节点的读比重,和主节点的优先级设置。



  • 数据完全同步后才能切换

  • 切换时从节点同步最多等待时间

  • 切换前检查从节点延迟超过多久不执行切换

image20200710182440654.png


3、中间件流量查看

zCloud支持对中间件的管理,查看中间件的连接状态。

image20200710190456774.png


4、支持读写分离

zCloud支持开启ProxySQL中间件的读写分离功能。

image20200710185314352.png


5、中间件统一管理

zCloud支持对中间件节点统一管理和维护,为DBA提供了统一的管理界面,能够一键启停、管理中间件用户、进程信息、SQL统计和连接状态。

image20200710191019364.png

image20200710191315782.png

以上便是zCloud的dbPaaS能力之MySQL高可用管理,下一篇将介绍zCloud的备份恢复管理(我是传送门~)。

zCloud目前已有众多的客户和应用实践,后续的文章依然会结合行业的真实应用给大家更形象地展示zCloud的功能设计,如果对dbPaaS平台感兴趣,可以持续关注,联系marketing@enmotech.com申请在线试用(请在邮件中备注您的姓名、电话、公司、职位和获取信息的来源,我们市场部小姐姐会第一时间联系您~)

参考:

https://www.cnblogs.com/youkanyouxiao/p/8335159.html

https://cloud.tencent.com/developer/article/1511815

附上本系列的链接,方便查阅:

1、什么是dbPaaS?

2、云和恩墨的dbPaaS:zCloud 数据库云管理平台

3、zCloud的dbPaaS能力(一):租户和资源管理

4、zCloud的dbPaaS能力(二):自动化部署

5、zCloud的dbPaaS能力(三):高可用管理 Part1 - Oracle

6、zCloud的dbPaaS能力(三):高可用管理 Part2 - MySQL

7、zCloud的dbPaaS能力(四):备份恢复管理

8、zCloud的dbPaaS能力(五):监控巡检和性能容量实战之数据库故障的一站式处理

9、zCloud的dbPaaS能力(六):SQL变更管理

10、zCloud的dbPaaS平台案例集锦



推荐阅读
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • 本文介绍了禅道作为一款国产开源免费的测试管理工具的特点和功能,并提供了禅道的搭建和调试方法。禅道是一款B/S结构的项目管理工具,可以实现组织管理、后台管理、产品管理、项目管理和测试管理等功能。同时,本文还介绍了其他软件测试相关工具,如功能自动化工具和性能自动化工具,以及白盒测试工具的使用。通过本文的阅读,读者可以了解禅道的基本使用方法和优势,从而更好地进行测试管理工作。 ... [详细]
  • 护墙_搭建LVS负载均衡NAT和DR模式
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了搭建LVS负载均衡NAT和DR模式相关的知识,希望对你有一定的参考价值。 ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了SpringCloudRibbon部分源码相关的知识,希望对你有一定的参考价值。1:ribbon是提供通过servi ... [详细]
author-avatar
烟为你吸_811
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有