美文网首页
redis master宕机和脑裂

redis master宕机和脑裂

作者: Britney_z | 来源:发表于2019-12-03 20:47 被阅读0次

    两个配置可以减少异步复制和脑裂导致的数据丢失:

    min-slaves-to-write 1

    min-slaves-max-lag 10

    解释:要求至少有1个slave,数据复制和同步的延迟不能超过10秒,如果说一旦所有的slave,数据复制和同步的延迟都超过了10秒钟,那么这个时候,master就不会再接收任何请求了 

    (1)减少异步复制的数据丢失 

    有了min-slaves-max-lag这个配置,就可以确保说,一旦slave复制数据和ack延时太长,就认为可能master宕机后损失的数据太多了,那么就拒绝写请求,这样可以把master宕机时由于部分数据未同步到slave导致的数据丢失降低的可控范围内 

    (2)减少脑裂的数据丢失 

    如果一个master出现了脑裂,跟其他slave丢了连接,那么上面两个配置可以确保说,如果不能继续给指定数量的slave发送数据,而且slave超过10秒没有给自己ack消息,那么就直接拒绝客户端的写请求,这样脑裂后的旧master就不会接受client的新数据,也就避免了数据丢失 

    上面的配置就确保了,如果跟任何一个slave丢了连接,在10秒后发现没有slave给自己ack,那么就拒绝新的写请求。

    因此在脑裂场景下,最多就丢失10秒的数据

    client可以采取的措施,第一做服务降级。第二 将数据灌入消息队列,过段时间再写

    相关文章

      网友评论

          本文标题:redis master宕机和脑裂

          本文链接:https://www.haomeiwen.com/subject/gkuhgctx.html