Logo
读写分离

读写分离 #

适用场景

伴随着业务量的增长,许多应用都会遇到数据库吞吐量的瓶颈,单一的数据库难以承载大量并发的查询和修改。这个时候,采用主从配置的数据库集群就成了一套行之有效的方案。主从配置,即主库负责数据的写入、修改、删除等事务性操作,从库负责查询操作的数据库架构。采用主从配置的数据库,可以将写操作带来的行锁限制在主库上,通过从库来支持大量的查询,从而极大地提升应用的性能。另外还可以采用多主多从的数据库配置,做到即使有数据节点宕机,甚至在数据库物理损坏的情况下,系统依旧可用。

读写分离可以将用户的查询操作和事务性的写操作分别路由至不同的数据库节点上,从而提升数据库系统的性能。读写分离支持负载均衡策略,可以将请求均匀的分发至不同的数据库节点。

前提条件

以 DBPlusEngine-Proxy 为例,下载并解压 proxy,参考如下配置,在 conf 目录下配置对应的配置文件后启动 proxy。

配置示例

config-readwrite-splitting.yaml

rules:
- !READWRITE_SPLITTING
  dataSources:
    pr_ds:
      writeDataSourceName: write_ds
      readDataSourceNames: [read_ds_0, read_ds_1]
      loadBalancerName: weight_lb
  loadBalancers:
    weight_lb:
      type: WEIGHT
      props:
        read_ds_0: 2
        read_ds_1: 1

相关参考

读写分离 YAML 配置