当前位置:首页 > CN2资讯 > 正文内容

主从服务器 架构 服务器主从模式

1周前 (09-23)CN2资讯



目录

  • 什么是主从复制
  • 主从复制的优缺点
  • 主从复制的实现原理
  • 1. 建立连接
  • 2. 数据同步
  • 全量复制
  • 部分复制
  • 3. 命令传播
  • 主从复制配置
  • 学习参考
  • 结语


Redis有三种集群模式,第一个就是主从复制模式,第二种“哨兵”模式,第三种是Cluster集群模式,第三种的集群模式是在Redis 3.x以后的版本才增加进来的,本篇博客就来说一下Redis第一种集群模式:主从复制模式。

什么是主从复制

通过执行slaveof命令或设置slaveof选项,让一个服务器去复制另一个服务器的数据。被复制的服务器称为:Master主服务;对主服务器进行复制的服务器称为:Slave从服务器。主数据库可以进行读写操作,当写操作导致数据变化时会自动将数据同步给从数据库。而从数据库一般是只读的,并接受主数据库同步过来的数据。在主从复制模式下,即便master宕机了,slave是不能变为主服务器进行写操作的。

一个master可以有多个slave,即一主多从;而slave也可以接受其他slave的连接,形成“主从链”层叠状结构(cascading-like structure),自 Redis 4.0 起,所有的sub-slave也会从master收到完全一样的复制流。如下图

主从复制的优缺点

优点:

  • 同一个Master可以同步多个Slaves。
  • 读写分离,负载均衡。主节点负载读写,从节点负责读,提高服务器并发量
  • 高可用基础,是哨兵机制和集群实现的基础

缺点:

  • Master的写的压力难以降低。
    注:虽然也可设定使得slave可写,但在数据的同步等方面使用上都有很多问题。主从模式最为常见的场景就是主写从读的模式,读写分离,降低读的压力。
  • 主节点宕机,无法执行写操作,只能连接从节点进行读操作,需要进行手工干预

主从复制的实现原理

Redis的主从复制过程大体上分3个阶段:建立连接数据同步命令传播

1. 建立连接

这个阶段主要是从服务器发出slaveof命令之后,与主服务器如何建立连接,为数据同步做准备的过程。

  • 在slaveof命令执行之后,从服务器根据设置的master的ip地址和端口,创建连向主服务器的socket套接字连接,连接成功后,从服务器会为这个套接字关联一个专门的处理器,用于处理后续的复制工作
  • 建立连接之后,从服务器会向主服务器发送ping命令,确认主服务器是否可用,以及当前是否可用接受处理命令。如果收到主服务器的pong回复说明是可用的,否则有可能是网络超时或主服务器阻塞,从服务器会断开连接发起重连
  • 身份验证。如果主服务器设置了requirepass选项,那么从服务器必须配置masterauth选项,且保证密码一致才能通过验证
  • 身份验证完成之后,从服务器会发送自己的监听端口,主服务器会保存下来
  • 2. 数据同步

    在主从服务器建立连接确认各自身份之后,就开始数据同步,从服务器向主服务器发送PSYNC命令,执行同步操作,并把自己的数据库状态更新至主服务器的数据库状态。

    Redis的主从同步分为:全量复制部分复制

    • runid(replication ID),主服务器运行id,Redis实例在启动时,随机生成一个长度40的唯一字符串来标识当前节点。运行ID的主要作用是来唯一识别redis节点,比如从节点保存主节点的运行ID识别自已正在复制是哪个主节点。如果只使用ip+port的方式识别主节点,那么主节点重启变更了整体数据集(如替换RDB/AOF文件),从节点再基于偏移量复制数据将是不安全的,因此当运行ID变化后从节点将做全量复制。可以在info
      server命令查看当前节点的运行ID。需要注意的是redis关闭再启动,运行的id会随之变化。
    • offset,复制偏移量。主服务器和从服务器各自维护一个复制偏移量,记录传输的字节数。当主节点向从节点发送N个字节数据时,主节点的offset增加N,从节点收到主节点传来的N个字节数据时,从节点的offset增加N
    • replication backlog buffer,复制积压缓冲区。是一个固定长度的FIFO队列,大小由配置参数repl-backlog-size指定,默认大小1MB。需要注意的是该缓冲区由master维护并且有且只有一个,所有slave共享此缓冲区,其作用在于备份最近主库发送给从库的数据

    全量复制

    有两种情况下是完整重同步,一是slave连接上master第一次复制的时候;二是如果当主从断线,重新连接复制的时候有可能是完整重同步,

    全量复制的步骤

  • 服务器连接主服务器,发送PSYNC命令
  • 主服务器接收到PSYNC命名后,开始执行bgsave命令生成RDB文件并使用缓冲区记录此后执行的所有写命令
  • 主服务器basave执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令
  • 从服务器收到快照文件后丢弃所有旧数据,载入收到的快照
  • 主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令
  • 从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令
  • 部分复制

    部分复制是用于处理断线后重复制的情况。

    当slave连接到master,会执行PSYNC < runid > < offset >发送记录旧的master的runid(replication ID)和偏移量offset,这样master能够只发送slave所缺的增量部分。但是如果master的复制积压缓存区没有足够的命令记录,或者slave传的runid(replication ID)不对,就会进行完整重同步,即slave会获得一个完整的数据集副本

    部分复制的步骤


    PSYNC命令执行完整重同步和部分重同步的流程图:

    3. 命令传播

    当完成数据同步之后,主从服务器的数据暂时达到一致状态,当主服务器执行了客户端的写命令之后,主从的数据便不再一致。为了能够使主从服务器的数据保持一致性,主服务器会对从服务器执行命令传播操作,即每执行一个写命令就会向从服务器发送同样的写命令。

    在命令传播阶段,从服务器会默认以每秒一次的频率向主服务器发送心跳检测

    REPLCONF ACK <replication_offset> //其中replication_offset是当前从服务器的复制偏移量

    发送REPLCONF ACK命令对于主从服务器有三个作用:

  • 检测主从服务器的网络连接状态
  • 辅助实现min-slaves选项
  • 检测命令丢失

  • 结语

    其实redis的主从模式很简单,在实际的生产环境中是很少使用的,也不建议在实际的生产环境中使用主从模式来提供系统的高可用性,之所以不建议使用都是由它的缺点造成的,在数据量非常大的情况,或者对系统的高可用性要求很高的情况下,主从模式也是不稳定的。虽然这个模式很简单,但是这个模式是其他模式的基础,所以必须深刻的理解,对其他模式的学习才会有帮助作用。


      你可能想看:

      扫描二维码推送至手机访问。

      版权声明:本文由皇冠云发布,如需转载请注明出处。

      本文链接:https://www.idchg.com/info/20915.html

      分享给朋友:

      “主从服务器 架构 服务器主从模式” 的相关文章

      使用newcom598优惠码注册域名,享受超值价格

      什么是newcom598优惠码? 我想和大家分享一个超值的优惠信息,那就是newcom598优惠码。这是一个专为Namecheap的新用户设计的优惠码,意在帮助刚开始建立自己在线业务的人以超优惠的价格注册.COM域名。通过这个优惠码,新用户可以以仅$5.98的价格获得首年的.COM域名,这样算下来在...

      搬瓦工(BandwagonHost)VPS指南:选择适合你的方案与实用技巧

      搬瓦工(BandwagonHost)是一家在VPS领域颇具声望的提供商。作为杭州的一家企业,搬瓦工致力于为用户提供高性价比的虚拟专用服务器服务,在业内吸引了大量的关注和客户。 说到搬瓦工的优势,机房和线路的多样性是一个重要因素。它在多个国家设有数据中心,包括香港、美国和日本等地。这种广泛的选择使用户...

      RackNerd 密码管理与安全指南:保护您的账户安全

      RackNerd 密码管理与安全 在探讨RackNerd的密码管理与安全之前,了解这个主机商的背景有助于我们更好地理解其服务的重要性。RackNerd成立于美国,专注于提供多种主机服务,包括虚拟主机、KVM VPS、Hybrid Dedicated Servers和独立服务器租用等。这些服务非常适合...

      BuyVM色情网站托管服务解析 - 提升成人内容运营安全与效率

      什么是BuyVM色情服务 当我提到BuyVM的时候,可能很多人对这个名字还不太熟悉。简单来说,BuyVM是一家提供虚拟专用服务器(VPS)和网站托管服务的公司,专注于各种类型的内容,包括成人色情内容。它的历史可以追溯到多个年份前,BuyVM在业内逐渐赢得了声誉,成为不少成人网站的首选托管平台。以其可...

      深入了解DMIT不同线路,优化您的网络体验

      在开始深入了解DMIT这一知名VPS提供商之前,我想先分享一下我对于它的初步印象。DMIT的使命是为用户提供高性能、稳定的VPS解决方案,特别是在跨境访问方面表现不俗。他们采用的CN2优化线路更是让其在众多竞争对手中脱颖而出。通过不断的发展与创新,DMIT为不同需求的用户提供了多种线路选择。 DMI...

      APT攻击解析:如何应对高级持续性威胁

      APT攻击,或称为高级持续性威胁,是一种复杂的网络攻击形式。这种攻击的发起者通常是具有高度组织性和专业性的攻击者,可能是国家支持的黑客组织,或者其他有目的的恶意实体。他们的目标不仅仅是短期内造成损害,而是着眼于更长远的战略性目标,比如窃取国家机密、企业的核心技术或其他商业秘密。这种攻击对目标组织的声...