当前位置: 代码迷 >> 综合 >> 【CDP-云设计模式】第7章,2.读副本模式(Read Replica Pattern)
  详细解决方案

【CDP-云设计模式】第7章,2.读副本模式(Read Replica Pattern)

热度:27   发布时间:2023-12-15 13:50:04.0

1.要解决的问题

  在数据库访问频率变高而导致数据库服务器不堪重负时,通常会对服务器规格进行升级(也就是服务器的纵向扩展)。当纵向扩展很难时,你可以采用横向扩张来水平分布数据库服务器;然而,这种方法一向非常困难。对数据库服务器来说,一般读数据的比例是多于写数据的,所以总体来说应该主要提升系统的读性能。

2.云模式的说明

  提升读性能有很多种方法。你可以使用这种模式,通过将读取任务分配给多个“读复本”(即,用于读取的副本)从而提升整体性能。读副本遵循主服务器的记录,反映数据本身。可以通过主要从副本读取数据从而减少主服务器的负载。

3.实施

  AWS关系型数据库管理系统(RDSMS)服务,亚马逊RDS服务,可以使只读数据库,也就是读副本的创建变得十分简单。创建只读数据库也可以由EC2实例来代替。

  • 为主数据库创建只读副本。RDS控制的数据库可以使用读复本功能创建只读副本。

  • 当应用读取数据时,将读副本设为访问地址。

  • 虽然可以使用多个读副本,但是必须在应用端中指定。这过程中,需要使用到如HAProxy或MySQL Proxy这样的中间件。

4.配置

图1

5.好处

  • 如果数据库的读取负载很高,可以使用这种模式分散负载。

  • 如果您想执行一个进程而又不增加主数据库的负载,这种模式也很有效,比如说一个数据分析应用。

  • 由于读复制模式的目的不是为了进行冗余,所以如果你是想增加数据库的持久性,则可以考虑采用数据库复制模式,而不是读副本。当然,也可以并行使用这两种模式。

  • 特别强调,读复本是一种异步复制,所以要当心主服务器和读副本之间会有轻微的延迟。

  • 在RDS上禁用自动备份(即,设置“备份保留时间”为0)将阻止读副本从RDS上备份。

  相关解决方案