深入浅出百亿请求高可用Redis(codis)分布式集群揭秘
1)proxy接收客户端的连接之后,新建一个session,同时启动session中reader与writer两个协程,reader主要用于接收客户端请求数据并解析,对多key的场景下进行命令的拆分,然后将请求通过router进行分发到具体的redis实例,并将redis处理的数据结果写到通道到中,writer从通道中接收对应的结果,将写回给客户端。 2)Router层主要是通过crc命令得到key对应的路由信息,从源码可以看到hashtag的特性,codis其实也是支持的。 至此,proxy相关的路由映射与请求处理细节已经结束,整体下来是不是很简单。 五、数据可靠性&高可用&容灾&故障转移&脑裂处理 作为存储层,数据可靠性与服务高可用是稳定性的核心指标,直接影响到上层核心服务的稳定性,本节将主要针对这两个指标来做一下阐述。 5.1 数据可靠性 作为codis的实现来讲,数据高可靠主要是redis本身的能力,通常存储层的数据高可靠,主要是单机数据高可靠+远程数据热备+定期冷备归档实现的。 单机数据高可靠主要是借助于redis本身的持久化能力,rdb模式(定期dum)与aof模式(流水日志),这块可以参考前文所示的2本书来了解,其中aof模式的安全性更高,目前我们线上也是将aof开关打开,在文末也会详细描述一下。 远程数据热备主要是借助于redis自身具备主从同步的特性,全量同步与增量同步的实现,让redis具体远程热备的能力。 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |