常用数据层技术高可用方案
简介
做架构设计我们都要面临系统的三高问题,系统的三高是指高并发、高性能、高可用,这些是系统架构设计中的重要指标。
高并发是指系统能够同时处理大量请求的能力。每次设计架构我们都需要根据业务体量来估算系统需要具备的并发的能力,以避免请求的拥堵和延迟,随着业务的发展系统需要处理的数据和请求量越来越大,我们设计的架构也需要升级。
高性能是指系统能够快速响应和处理多种事务的能力。所有系统的性能是用户体验的重要保障,如果系统响应速度慢或者无法支持多种事务,将会导致用户体验差,影响公司业务发展。
高可用是指互联网系统能够持续提供服务,不受到故障或宕机的影响。系统一旦出现故障或宕机,将会导致用户无法使用业务或者造成数据丢失等严重后果。因此,所有系统需要具备高可用的能力,以保证服务的连续性和稳定性。
本文将选取高可用中数据层高可用方案设计这一维度来开展,因为仅高可用这一话题就可以细分出应用层高可用,中间件层高可用,数据层高可用,这些仅仅一篇博文是讲不明白的,后续再做补充。
一、mysql高可用方案
数据层设计一个高可用的架构非常重要,系统业务都基于数据层展开,这里主要描述了MySQL的主从模式、集群模式、MMM、MHA这几个高可用架构。
1、主从模式
MySQL的复制是基于MySQLBinlog日志的,主库在事务提交时会把数据变更作为事件Events记录在二进制日志文件Binlog中;MySQL主库上的sync_binlog参数控制Binlog日志刷新到磁盘。从库连接主库请求数据。
2、集群模式
3、MMM
MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序
4、MHA
MHA它由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。MHA Manager可以单独部署在一台独立的机器上管理多个 master-slave 集群,也可以部署在一台 slave 上。
二、redis高可用方案
1、主从模式
主从复制是指将一台Redis服务器的数据复制到其他的Redis服务器。
2、哨兵模式
Redis Sentinel(哨兵或哨岗)为Redis提供了高可用解决方案。Sentinel实例可以监视任意多个主节点以及这些主节点属下的所有从节点,并在被监视的主节点进入下线状态时自动将下线主节点属下的从节点升级为新的主节点,然后由新的主节点替代已经下线的主节点并继续处理后续的命令请求。
3、集群模式
Redis集群是一个提供在多个Redis节点间共享数据的程序集。集群是由多个节点(Node)组成的,Redis的数据根据不同的键分布在这些节点中
总结
本文主要是简单阐述了MySQL和redis推出的高可用方案,具体实现细节以及优缺点、应用场景没有进行阐述,后续连载文章再做细节性的描述。