两种常见的mysql集群架构

摘要:
常见的MySQL集群架构根据业务开发阶段和业务代码部署而有所不同。对于单个数据库的扩展,可以使用以下部署体系结构模型:单个区域高可用性体系结构单个区域高可用性体系结构组合dbproxy数据库代理:主要处理:读/写分离、主从切换等。LVS隐藏dbproxy的活动和备用详细信息,因为mysql访问者通常是业务代码。多区域高可用性架构需要关注区域服务器告警、写入流量告警、读取流量告警、binlog延迟告警和区域级服务可用性告警。

常见的mysql集群架构

根据业务发展阶段和业务代码部署情况不同,对于扩展单数据库可以使用以下几种部署架构模型

单地域高可用架构

两种常见的mysql集群架构第1张

  • 单地域高可用架构的构成
  1. dbproxy数据库代理: 主要处理:读写分离,主从切换等。
  2. 主库(高可用):处理业务写流量。
  3. 从库(多实例,可选高可用):处理业务读流量。
  • 单地域高可用的架构可以处理
  1. 业务流量在单地域的的业务结构
  2. 可用性:可以处理:dbproxy主备切换(proxy失败),主库主备切换(主库失败),添加从库(读流量扩容)
  • 单地域高可用架构不能处理
  1. 本地域机房失效。
  • 单地域架构需要关注的指标
  1. 地域服务器报警
  2. 写流量报警(通过主库主备切换恢复)
  3. 读流量报警(通过新增从库扩容)
  4. binlog延迟报警
  • 说明

现实中这种架构的服务器比较少,一般为了稳定性,会把业务代码进行多地域部署,这样下面这种架构数据库就更加适应这种多地域业务部署的情况。

多地域高可用架构

两种常见的mysql集群架构第2张

  • 多地域高可用架构的构成
  1. dbproxy数据库代理: 主要处理读写分离,主从切换,地域切主。
  2. 地域主库,负责本地域内的主从复制。
  3. 真实主库,负责整个业务的写流量。
  4. 地域从库,负责本地域的数据库读流量。
  5. LVS,隐藏dbproxy主备细节,因为mysql访问者一般是业务代码。因此这里的LVS是内网负载均衡.
  • 多地域高可用架构可以处理
  1. 单地域服务器报警。
  2. 业务流量在多地的业务。
  3. 可用性:dbproxy主备切换,主库主备切换,主库地域切换,添加从库,添加地域。
  • 多地域高可用架构需要关注
  1. 地域服务器报警
  2. 写流量报警(通过主库主备切换恢复)
  3. 读流量报警(通过新增从库扩容)
  4. binlog延迟报警
  5. 地域级服务可用性报警。
  • 说明

这种架构主要处理单库多地域扩展性的问题。很明显这种架构因为写流量集中在主库,这里会成为瓶颈,可能需要分库做进一步的扩展。

by:zhangfeng

免责声明:文章转载自《两种常见的mysql集群架构》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇winform程序 实现类似 qq 消息提醒功能实现C# 使用 SqlBulkCopy 类批量复制数据到数据库下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MySQL数据库接口的VC实现与应用

摘要:MySQL数据库作为一种网络数据库性能十分出色,但其在应用软件中使用较少。本文将主要探讨MySQL提供的两种数据库接口 ——(ODBC API和C API)在VC中的应用,并且形成一个类用以封装C API数据库接口的功能。 关键词:MySQL;数据库接口;ODBC API;C API下载本文配套源代码 引言 随着现代计算机软硬件及网络技术的发展,在...

编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时会产生Additional information: 阅读器关闭时尝试调用 Read 无效问题,解决方法与解释

在自学杨中科老师的视频教学时,拓展编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时 会产生Additional information: 阅读器关闭时尝试调用 Read 无效问题,错误产生时,我的代码如下: SqlHelper.cs代码如下: public static SqlDataReader ExecuteR...

Linux Oracle 11g dataguard物理standby的配置

这两天研究了下oracle 11g dataguard 物理standby 功能,总体来说这个功能满足公司需求,好了,不多说了,以下是详细的配置过程。 主库: IP:192.168.77.5 主机名:nod1 ORACLE_SID=test ORACLE_BASE=/oracle/app/oracle ORACLE_HOME=/oracle/app/or...

Mysql字符集设置

最近,在项目组使用的mysql数据库中,插入数据出现乱码,关于这个问题做了下总结,我们从最基本的地方说起,到错误产生的深层次原因和解决办法。 基本概念 • 字符(Character)是指人类语言中最小的表义符号。例如’A'、’B'等;• 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encoding)。例如,我们给...

Java消息系统简单设计与实现

前言:由于导师在我的毕设项目里加了消息系统(本来想水水就过的..),没办法...来稍微研究研究吧..简单简单... 需求分析 我的毕设是一个博客系统,类似于简书这样的,所以消息系统也类似,在用户的消息里包含了有:喜欢和赞、评论、关注、私信这样的一类东西,这样的一个系统应该包含以下的功能: 当用户评论/关注/点赞时能够通知到被评论/关注/点赞的用户,并...

c#调用存储过程两种方法

摘要 存储过程的调用在B/S系统中用的很多。传统的调用方法不仅速度慢,而且代码会随着存储过程的增多不断膨胀,难以维护。新的方法在一定程度上解决了这些问题。   关键词 ASP.NET;存储过程     在使用.NET的过程中,数据库访问是一个很重要的部分,特别是在B/S系统的构建过程中,数据库操作几乎成为了一个必不可少的操作。调用存储过程实现数据库操作使很...