3/28 业务系统高可用设计(下)
数据库
本方案中数据库采用了阿里云 MySQL RDS 产品,架构如下
数据库的高可用设计方案
采用多可用区部署,提供可用区级别的容灾
采用一主一备的高可用方案。 RDS MySQL 集群版实例采用计算与存储分离、一主多备的架构,支持自动故障切换、任意备节点可切换为主节点、备节点可读、按需增删节点、多可用区容灾、节点粒度的监控、集群节点拓扑管理等功能
创建灾备实例。灾备节点放在和主节点不一样的可用区, 通过 DTS 实现主实例和异地灾备实例之间的实时同步。主实例和灾备实例均搭建主备高可用架构,当主实例所在区域发生突发性自然灾害等状况,主节点(Master)和备节点(Slave)均无法连接时,可将异地灾备实例切换为主实例,在应用端修改数据库链接地址后,即可快速恢复应用的业务访问
设置自动备份。 为减少误操作或数据库异常时的不可用时间,建议您设置实例每隔一段时间自动备份,以便出现问题时及时恢复到最近的数据。
增加一个冷备节点。冷备节点放在不同地域,比如新加坡。 如果出现地域级别故障时,导致数据丢失时, 冷备节点的数据可以用来恢复当前业务数据,但是要能接受一定的 RPO 损失,比如 24 小时。
消息队列
本方案中消息队列采用了阿里云的 RocketMQ 产品. 云消息队列 RocketMQ 版本身采用了高可用部署方案。 其架构如下
其服务集群都采用了多可用区部署,每个数据都会有三个副本,其服务的 SLA 可以达到 99.95%。
另外阿里云 RocketMQ 支持重置消费点位,当消费出现异常或者当前消费位点不符合您的预期时,您可以通过重置消费位点调整您的消费进度
缓存
本方案中消息队列采用了阿里云的 Redis 产品. 云数据库 Redis 双副本集群版实例本身采用了高可用部署方案,基于集群架构,可满足高吞吐、低延迟及弹性变配等业务需求,服务的 SLA 达 99.95%。其部署架构如下:
数据分片(data shards): 每个数据分片均为双副本(分别部署在不同机器上)高可用架构,主节点发生故障后,系统会自动进行主备切换保证服务高可用。部署时选择双可用区部署。
配置服务器(config server):采用双副本高可用架构,用于存储集群配置信息及分区策略。部署时选择双可用区部署。
版权声明: 本文为 InfoQ 作者【hackstoic】的原创文章。
原文链接:【http://xie.infoq.cn/article/6fc616579e02fc001cdd6adf0】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论