1、架构设计理念
在集群架构设计时,主要从下面三个维度出发
①可用性
②拓展性
③一致性
具体实现方案如下:
2、可用性设计
①站点高可用,冗余站点
②服务高可用,冗余服务
③数据高可用,冗余数据
保证高可用的方法是冗余,但是③中的数据冗余会带来数据一致性的问题,所以,实现高可用的方案有以下几种架构模式:
①主从模式
简单而且灵活,能满足绝大多数的需求和场景,是现在比较主流的用法,但是写操作高可用需要自行处理
②双主模式
互相是主从,其中还包括:双主双写、双主单写两种,这里还是比较建议使用双主单写
3、拓展性设计
拓展性主要围绕着读操作和写操作拓展的
①如何拓展提高读的性能
⑴加从表
简单易操作,而且方案和场景相对成熟
但是从库过多会引发主库性能的损耗,所以建议不要作为长期的扩充方案,合理的设计应该设法用良好的设计避免持续加从表来缓解读操作性能问题
⑵分库分表
又分为:垂直拆分和水平拆分,前者可以缓解部分压力,后者理论上可以无限扩充
②如何拓展提高写性能?
分库分表
4、一致性设计
一致性主要考虑集群中各数据同步以及同步延迟的问题,可以采用以下方案:
①不使用从库
扩展读性能问题需要单独考虑,否则容易出现系统瓶颈
②增加访问路由层
可以先得到主从同步最长时间t,在数据发生修改后的t时间内,先访问主库