复制集群架构设计技巧

Redis Sentinel 设计技巧 

  哨兵的作用

    监控redis节点的状态

    可以通过api进行集群状态通知

    实现故障自动切换

    为client提供了master发现功能,当发生master切换时通知client

  raft算法

  双节点架构(注意quorum ,majority配置)

    单节点redis异常正常切换master

    单点服务器宕机,则宕机

    双节点通信异常,脑裂

  三节点架构(注意quorum ,majority配置)

    单个服务器宕机 正常切换master

    master与其他机器网络通信异常,可能出现双主--配置最小复制节点 min-replicas-to-write 1; min-replicas-max-lag 10

  分离部署(注意quorum ,majority配置)

    哨兵和redis分开部署,redis客户端与哨兵部署不限制

    仅当哨兵(有一个即可)与redis的master节点形成分区,可能发生脑裂

 MongoDB Replication 设计技巧

  primary节点处理所有请求 secondary处理读请求或者复制数据

  异步复制,oplog  

  3.2后raft算法,最多支持50个节点,但是做多仅7个节点参与选举

  

  新节点的同步流程

    寻找同步源,mangodb支持级联复制,不一定是primary,由算法掌控

    全量复制数据和oplog

    同步全量复制后的增量数据,异步复制oplog

  read preference

    默认读primary,指定read preference 读取secondary

    可能读取不到最新数据

    事务必须读取primary

    包含五种preference:primary,primaryPreferred, secondary,secondaryPreferred, nearest.

    通过Api或者连接配置参数

  Arbiter

    只投票不复制数据

    相当于仲裁者

 

posted on 2022-12-14 18:50  李某人的窥视  阅读(14)  评论(0编辑  收藏  举报

导航