五分钟技术趣谈 | MMD数据库高可用方案

数据库
本文透过项目上实践应用案例,介绍基于MHA框架实现分布式数据存储方案。

Part 01

概述 

Mysql作为市场上最受欢迎的数据库之一,可以给业务提供稳定的数据读写能力。随着业务场景多样化,单一的数据库管理已经不满足市场需求,逐渐的衍生出了多种类型的高可用方案,其中MHA最受欢迎,但MHA依赖分布式mha4服务,容错性差,且造成浪费资源。所以我们需要通过双高可用方式来提高数据库的稳定性。

Part 02

组成 

图片图片

Mysql高可用包含3个模块,具体模块详情如下:

➤keeplived服务:主要提供可用VIP;

➤Mysql_cluster服务:实现用户数据的读写和故障迁移;

➤同步检测服务:通过拨测检查服务同步状态,进行异常处理。

Part 03

方案介绍 

1️⃣通过域名对外提供服务;

2️⃣两台Mysql都可读写,互为主备,masterA负责数据的写入,masterB备用;

3️⃣masterA是masterB的主库,masterB又是masterA的主库,它们互为主从;

4️⃣两台主库之间做高可用,可以采用keepalived方案(使用VIP对外提供服务);

5️⃣masterA或masterB均不因异常恢复后而抢占VIP(nopreempt);

6️⃣masterA和masterB均有同步数据探测,同步异常及时处理。

图片


Part 04

 方案优势 

数据库高可用方案具有以下优势:

➤ 多集群管理:降低了多种异常发生造成的影响,提高了环境的稳定性。

➤ 数据准确性:Mysql单节点写入,不容易造成数据覆盖、主键重复等问题,解决了同步异常无法确定以哪个库为准的问题。

➤ 降本增效:与传统数据库高可用相比,服务器资源占用降低了30%以上、节省运维成本40%以上。

➤ 检测机制:频率性监测机制,确保及时发现问题,自身治愈。

Part 05

方案效果 

图片

masterA和masterB可以采用单/双递增主键:

图片

1.解决Mysql节点都可以写入,极其容易造成主键重复,进而导致主从同步失败的问题。

2.标识数据通过哪个数据库写入。

Part 06

结束语 

在整体方案上,如果要保证数据的准确性,就依赖于单写,技术架构上就存在单点压力过载的风险,目前数据库单写是瓶颈。读写分离、多写将是未来的主要发展趋势,技术架构难解决的问题,我们可以通过业务侧来解决,根据业务分类选择高可用架构中不同的数据库存储,可以保证单业务侧的数据完整性,就能解决单写和单点压力过载的问题。为不同业务应用场景提供相匹配的解决方案,实现多种应用场景才是我们的初衷。

责任编辑:庞桂玉 来源: 移动Labs
相关推荐

2023-04-15 20:33:35

图形数据库数据库

2023-07-23 18:47:59

Docker开源

2023-08-15 14:54:02

数据库容灾

2023-07-16 18:49:42

HTTP网络

2023-04-15 20:25:23

微前端

2023-07-02 16:09:57

人工智能人脸识别

2023-07-02 16:34:06

GPU虚拟化深度学习

2023-09-12 07:10:13

Nacos架构

2023-07-23 08:35:13

Web网络

2023-07-31 08:55:15

AI技术网络暴力

2023-07-12 15:50:29

机器学习人工智能

2023-08-29 06:50:01

Javamaven

2023-07-12 16:03:37

Android开发架构

2023-08-06 07:00:59

Openstack网络

2023-08-15 14:46:03

2023-09-17 17:51:43

Android 14

2023-08-06 06:55:29

数字可视化物联网

2021-06-04 15:38:18

联邦学习人工智能数据

2021-09-18 11:36:38

混沌工程云原生故障

2023-07-12 16:13:01

点赞
收藏

51CTO技术栈公众号