最近根据视频学习redis主从备份,哨兵机制java
遇到异步复制,若是从比主延迟超过设定的时间值数据,则主机拒绝客户端写入,遇到这种状况,java客户端应该进行的操做,视频里解释为:
1)通常来讲 ,客户端进行降级存储,(磁盘存储?)client接收的请求也作降级处理,进行请求限流;
2)或者经过kafa(消息队列)临时存储,每隔必定时间从队列里面取出来,尝试存入master;redis
根据给出的方案思考了下,真正实行起来确实个庞大的工程,由于主拒绝写入但是从应该仍是能够读的,这样致使读写不一致,刚刚写入的数据在redis中不存在,并且无论降级到磁盘或者采用消息队列,容量确定有限制,若是master一直没法恢复,该作怎样的容灾处理;数据库
由于本身刚刚接触这块,以前作的都是没有分级缓存的项目,QPS很小,直接数据库读写分离就能够缓解压力;
这块感受至关复杂,分布式下每块又是集群,因此将这个过程当中本身遇到的问题都记录下来,之后有其余新的思路再来从新编辑~缓存