我们知道,大部分的业务场景都是读多写少,为了利用好这个特性,提升Redis集群系统的吞吐能力,通常会采用主从架构
、读写分离
如上图所示:其中
为了提高吞吐量,采用一主多从的架构,将业务的读压力分摊到多台服务器上
上述方案,看似合理,但其实可能存在一定隐患!
这要从主从同步
讲起了,我们先来看张流程图
master_repl_offset - slave_repl_offset 得到从库与主库间的复制进度差
我们可以开发一个监控程序,定时拉取主从服务器的进度信息,计算进度差值。如果超过我们设置的阈值,则通知客户端断开从库的连接,全部访问主库,一定程度上减少数据不一致情况。
待同步进度跟上后,我们再恢复客户端与从节点的读操作。