本文介绍: redis容灾
背景
最近各种机房事故频发,所以很多公司都对Redis存储等进行异步多活,我们公司采用的方式是通过客户端双写的方式来实现异地Redis机房的备份,但是当异地机房出现临时网络故障时,就涉及到了如何进行补数的操作,本文就是来记录下如何补数
Redis补数设计
首先可以补数的前提肯定需要记录写异地机房失败的redis命令,所以当客户端在写异地机房失败时,我们需要先把失败的redis命令写到kafka主题中,不过由于我们需要确保同一个key操作的顺序性,所以需要确保同一个redis的key命令发送到同一个kafka分区
其次补数的主要逻辑是通过对比Redis源集群和目标集群对应key的数据,把Redis源集群的key对应的value设置到目标Redis集群的key上面
此外还需要考虑的一些要点包括:
1.为了防止对Redis造成太大的压力,消费消息时需要进行限流(可以通过预期QPS/分片数=每个分片的消费速度,进行每分片限流)
2.补数时针对不同的redis的cmd需要不同的处理逻辑,比如针对SADD和SET就是两种不同的处理逻辑
方案设计如下
原文地址:https://blog.csdn.net/lixia0417mul2/article/details/135481622
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_54150.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。