Redis高可用(三)ReplicationSentinel模式

编程

  • 主从复制(Replication-Sentinel模式)
  • Redis集群(Redis-Cluster模式)

    主从复制(Replication-Sentinel模式)

    工作原理-Replication

    Redis主从结构如下图所示,主节点(master)负责读写,从节点(slave)负责读。这个系统的运行依靠三个主要的机制:

    • 当一个 master 实例和一个 slave 实例连接正常时, master 会发送一连串的命令流来保持对 slave 的更新,以便于将自身数据集的改变复制给 slave ,包括客户端的写入、key 的过期或被逐出等等。
    • 当 master 和 slave 之间的连接断开之后,因为网络问题、或者是主从意识到连接超时, slave 重新连接上 master 并会尝试进行部分重同步:这意味着它会尝试只获取在断开连接期间内丢失的命令流。
    • 当无法进行部分重同步时, slave 会请求进行全量重同步。这会涉及到一个更复杂的过程,例如 master 需要创建所有数据的快照,将之发送给 slave ,之后在数据集更改时持续发送命令流到 slave 。

    简单的主从集群有个问题,就是主节点挂了之后,无法从新选举新的节点作为主节点进行写操作,导致服务不可用。所以接下来介绍Sentinel(哨兵)功能的使用。哨兵是一个独立的进程,哨兵会实时监控master节点的状态,当master不可用时会从slave节点中选出一个作为新的master,并修改其他节点的配置指向到新的master。

    该系统执行以下三个任务:

    • 监控(Monitoring):Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。
    • 提醒(Notification):当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。
    • 自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。

     

    SpringBoot连接Redis主从集群配置

    spring:

    redis:

    sentinel:

    master: mymaster

    nodes: 192.168.1.167:26379,192.168.1.167:26380,192.168.1.167:26381

    host: 192.168.1.164

    port: 7003

    database: 0

    password: <password>

     

     

    实践中注意事项:

    1. 如果是阿里云的服务器在安装redis时,需要注意防范流行的挖矿病毒,可能会被植入挖矿病毒,会有networkservice,sysupdate等耗CPU的服务;
    2. sentinel节点配置时,配置文件中,其ID不要相同;

以上是 Redis高可用(三)ReplicationSentinel模式 的全部内容, 来源链接: utcz.com/z/514411.html

回到顶部