【CDP-云设计模式】第7章,2.读副本模式(Read Replica Pattern)
2016-08-08 10:26
309 查看
1.要解决的问题
在数据库访问频率变高而导致数据库服务器不堪重负时,通常会对服务器规格进行升级(也就是服务器的纵向扩展)。当纵向扩展很难时,你可以采用横向扩张来水平分布数据库服务器;然而,这种方法一向非常困难。对数据库服务器来说,一般读数据的比例是多于写数据的,所以总体来说应该主要提升系统的读性能。2.云模式的说明
提升读性能有很多种方法。你可以使用这种模式,通过将读取任务分配给多个“读复本”(即,用于读取的副本)从而提升整体性能。读副本遵循主服务器的记录,反映数据本身。可以通过主要从副本读取数据从而减少主服务器的负载。3.实施
AWS关系型数据库管理系统(RDSMS)服务,亚马逊RDS服务,可以使只读数据库,也就是读副本的创建变得十分简单。创建只读数据库也可以由EC2实例来代替。为主数据库创建只读副本。RDS控制的数据库可以使用读复本功能创建只读副本。
当应用读取数据时,将读副本设为访问地址。
虽然可以使用多个读副本,但是必须在应用端中指定。这过程中,需要使用到如HAProxy或MySQL Proxy这样的中间件。
4.配置
5.好处
如果数据库的读取负载很高,可以使用这种模式分散负载。如果您想执行一个进程而又不增加主数据库的负载,这种模式也很有效,比如说一个数据分析应用。
由于读复制模式的目的不是为了进行冗余,所以如果你是想增加数据库的持久性,则可以考虑采用数据库复制模式,而不是读副本。当然,也可以并行使用这两种模式。
特别强调,读复本是一种异步复制,所以要当心主服务器和读副本之间会有轻微的延迟。
在RDS上禁用自动备份(即,设置“备份保留时间”为0)将阻止读副本从RDS上备份。
相关文章推荐
- 【CDP-云设计模式】第4章,4.NFS复制模式(NFS Replica Pattern)
- 【CDP-云设计模式】第7章,4.分片写模式(Sharding Write Pattern)
- 【CDP-云设计模式】第7章,3.内存中DB缓存模式(Inmemory DB Cache Pattern)
- 【CDP-云设计模式】第7章,1.数据库复制模式(DB Replication Pattern)
- 【CDP-云设计模式】第6章,1.写代理模式(Write Proxy Pattern)
- 【CDP-云设计模式】第5章,4.高速缓存分配模式(Cache Distribution Pattern)
- 【CDP-云设计模式】第3章,2.多数据中心模式(Multi-Datacenter Pattern)
- 【CDP-云设计模式】第4章,9.预定的横向扩展模式(Scheduled Scale Out Pattern)
- 【CDP-云设计模式】第3章,4.深度健康检查模式(Deep Health Check Pattern)
- 【CDP-云设计模式】第2章,3.纵向扩展模式(Scale Up Pattern)
- 【CDP-云设计模式】第9章,1.引导程序模式(Bootstrap Pattern)
- 【CDP-云设计模式】第3章,1.多服务器模式(Multi-Server Pattern)
- 【CDP-云设计模式】第4章,2.克隆服务器模式(Clone Server Pattern)
- 【CDP-云设计模式】第8章,3.工作观察者模式(Job Observer Pattern)
- 【CDP-云设计模式】第8章,4.预定的自动伸缩模式(Scheduled Autoscaling Pattern)
- 【CDP-云设计模式】第5章,1.网络存储模式(Web Storage Pattern)
- 【CDP-云设计模式】第2章,2.印章模式(Stamp Pattern)
- 【CDP-云设计模式】第4章,1.横向扩展模式(Scale Out Pattern)
- 【CDP-云设计模式】第4章,3.NFS共享模式(NFS Sharing Pattern)
- 【CDP-云设计模式】第8章,2.优先级队列模式(Priority Queue Pattern)