云数据库 RDS云数据库 RDS

文档首页> 云数据库 RDS> 最佳实践> PostgreSQL> 基于PostgreSQL Proxy实现读写分离
更新时间:2021/03/18 GMT+08:00
分享

基于PostgreSQL Proxy实现读写分离

操作场景

当单个PostgreSQL实例的处理能力达到瓶颈,无法承载更高的读写压力时,业务将会受到影响。此时可以通过水平扩展方式提升数据库的处理能力,对写少读多的业务场景,即业务对数据库有少量写请求,但有大量读请求的应用场景,云数据库 PostgreSQL支持创建一个或多个只读实例,然后通过PG Proxy将大量的读请求转移到只读实例上处理,主实例仅用于处理写请求。通过只读实例不仅分担了数据库主实例的压力,实现了读取能力的弹性扩展,还增加了数据库连接并发数。

实现原理

PG Proxy是实现PostgreSQL数据库读写分离能力的中间件,其位于PostgreSQL服务器和PostgreSQL客户端之间,数据库应用程序会将PG Proxy当作实际的PostgreSQL 数据库。如图1所示。

图1 PG Proxy原理图

优势

PG Proxy具有如下优势:

  • 完全兼容PostgreSQL协议,技术成熟并且应用广泛。
  • 具备统一的读写分离地址,降低应用程序复杂性,简化开发,方便维护。

    应用程序不需要区分主实例和只读实例,只需要在应用程序中配置一个统一的中间件读写连接地址后即可对主实例和只读实例进行读写操作,降低了开发和维护成本。

  • 在线扩展只读实例,应用程序无需任何修改。

    支持在线扩展添加只读实例,即可不断扩展系统的处理能力,扩展只读实例是对应用透明的,应用程序无需做任何修改。

  • 可在线设置读权重,灵活匹配多种业务场景使用。
  • 只读实例具备自动定时心跳健康检测,提升数据库的可用性。

    PG Proxy自动对只读实例进行心跳健康检测,当发现某个只读实例异常,例如宕机或者延迟超过阈值时,PG Proxy会停止将读请求发送到该异常只读实例,直到该只读实例恢复正常。

开通读写分离

  1. 开通读写分离前,您需要了解读写分离的计费详情使用限制
  2. 开通读写分离的操作指导请参考开通读写分离
  3. 开通读写分离后可根据需要设置延时阈值和读写分离权重
  4. 开通读写分离后验证读写分离效果
分享:

    相关文档

    相关产品