1、MQ集群高可用方案
异步转同步 + 限流算法 + 限制性丢弃流量
MQ集群发生故障后,binlog系统触发降级策略,不在往MQ集群发送数据,而是直接调用流控系统提供的接口发送数据给流控系统。数据量超过流控系统设置阀值后,流控系统启动限流算法,策略性的丢弃部分流量。
2、KV集群高可用保障方案
临时扩容Slave集群 + 内存级分片存储 + 小时级数据粒度
一旦发现KV集群奔溃后,直接报警。收到警报后,启动临时方案,手动扩容N倍的slave计算集群,触发流控系统的降级方案,降低系统流量。同时使用本地存储、本地计算的架构重构系统。考虑到数据量的问题,为了不撑爆slave内存,计算节点内存中只保留一个小时的数据,所以叫小时级数据粒度。
3、实时计算链路高可用保障方案
active-standy主备机制 + master-slave分布式计算机制
这套机制可以保障实时计算链路中master节点和slave节点都能够实现监控和故障替换。
4、计算结果热数据高可用保障
基于缓存的内存级查询引擎 + jvm本地缓存 + 限流算法
热数据高可用保障分为mysql集群故障和缓存集群故障两种情况。如果mysql集群故障,数据直接存入缓存集群,在使用基于缓存的内存级查询引擎查询数据,由于缓存集群能够保存的数据量有限,会导致部分用户看不到数据。如果是缓存集群故障,启动查询平台本地jvm缓存来保存缓存数据,同时启动限流算法限制流量。
5、冷数据高可用保障
手机查询日志 + 离线日志分析 + 高频查询缓存
冷数据本身就比较复杂,考虑到系统复杂性等方面,我们主要对冷数据查询日志进行分析,对其中的高频、热点查询进行缓存,冷数据机制出问题后,系统从缓存中查询数据。