有了
min-slaves-max-lag
这个配置,就可以确保说,一旦
slave
复制数据和
ack
延时太长,
就认为可能
master
宕机后损失的数据太多了,那么就拒绝写请求,这样可以把
master
宕机时
由于部分数据未同步到
slave
导致的数据丢失降低的可控范围内。
如果一个
master
出现了脑裂,跟其他
slave
丢了连接,那么上面两个配置可以确保说,如果不
能继续给指定数量的
slave
发送数据,而且
slave
超过
10
秒没有给自己
ack
消息,那么就直接
拒绝客户端的写请求。因此在脑裂场景下,最多就丢失
10
秒的数据。