Redis篇#
Redis脑裂#
解决方案:对于系统的主节点,需要对其维护一个计数器,记录能在一定时间(B)内响应主节点的从节点个数,如果这个计数器的值大于预设的值(A),那么我们认为主节点是没有发生网络分区的,反之,我们认为主节点已经掉线了(主节点主观上),那么,主节点应该自行停止接收客户端写操作;
如果假设从节点需要在10秒内响应,主节点宕机判定时间为8秒,从节点的主从切换需要5秒;那么发生网络分区后,8秒后,新主节点开始切换,由于从节点的响应时间是10秒,主节点仍然会认为自己在线10秒,此时若主节点在8-10秒内上线,就会发生缓存丢失
解决脑裂问题,需要合理安排上述参数