1主2从的情况下,配置读写分离起到什么作用?

@论坛小助手 leader节点和follow节点,分别配置读写分离,会影响leader的读写和follow节点的读特性吗?

4 个赞

根据文档库中的信息,可以综合多个文档片段来回答您的问题。

配置读写分离的作用

在 OceanBase 数据库中,1主2从的架构下配置读写分离的主要作用是:

  • 降低主节点压力:通过将读请求路由到备副本(Follower 节点),可以显著减少主副本(Leader 节点)的负载,从而提升整体性能。
  • 优化数据库性能:读写分离允许主节点专注于处理写操作和强一致性读操作,而备节点则负责处理弱一致性读操作,从而实现资源的有效分配。
  • 提高系统可用性:即使主节点发生故障,备节点仍然可以继续提供读服务,增强了系统的高可用性。

参考文档标题及段落:

  • 《读写分离》
  • 《SQL 路由 → 副本路由选择(读写分离部署)》

Leader 节点和 Follower 节点配置读写分离的影响

1. 对 Leader 节点的影响

  • 写操作:Leader 节点始终负责写操作,读写分离不会影响其写入性能。
  • 强一致性读操作:对于需要读取最新数据的强一致性读操作,这些请求会直接路由到 Leader 节点。因此,读写分离不会改变 Leader 节点的强一致性读特性。
  • 弱一致性读操作:如果某些弱一致性读操作被路由到 Follower 节点,则可以减轻 Leader 节点的读负载。

2. 对 Follower 节点的影响

  • 读特性:Follower 节点主要负责处理弱一致性读请求。通过读写分离配置,可以优先将读请求路由到 Follower 节点,从而分散读压力。
  • 延迟问题:需要注意的是,Follower 节点的数据可能会有几百毫秒的延迟(取决于日志同步的速度)。因此,使用 Follower 节点进行读操作时,无法保证读取到最新的数据。

参考文档标题及段落:

  • 《读写分离 → 配置读写分离》
  • 《SQL 路由 → 副本路由选择(常规部署) → 备优先路由》

配置读写分离的具体方式

可以通过以下方式配置读写分离:

1. 修改路由策略

  • 使用 proxy_route_policy 配置项设置路由策略:
    • follower_first:优先选择备副本,如果备副本不可用,则选择主副本。
    • follower_only:仅选择备副本,如果备副本不可用,则断开与客户端的连接。

参考文档标题及段落:

  • 《读写分离 → 配置读写分离 → 修改路由策略》

2. 设置弱读

  • 通过 Hint 或者修改配置项 obproxy_read_consistency 来启用弱读:
    alter proxyconfig set obproxy_read_consistency = 1;
    
    • 默认值为 0,表示强读。
    • 设置为 1,表示弱读。

参考文档标题及段落:

  • 《读写分离 → 配置读写分离 → 弱读设置 → 通过配置项设置》

总结

  • 配置读写分离的主要作用是降低主节点的压力、优化数据库性能以及提高系统可用性。
  • 对于 Leader 节点,读写分离不会影响其写操作和强一致性读特性,但可以减少弱一致性读请求的负载。
  • 对于 Follower 节点,读写分离会增加其读请求的负载,但由于数据可能存在延迟,无法保证读取到最新数据。
  • 可以通过修改路由策略和设置弱读来实现读写分离的具体配置。

检索到的文档如下:

  1. 读写分离
  2. SQL 路由
  3. 复制表
  4. 日志存储服务
  5. 分布式选举
  6. OceanBase 数据库性能的影响因素
3 个赞

做压力分担吧,当然也根据业务类型而定

3 个赞

ocenabase 默认是强一致性读, ob_read_consistency=strong 决定

  1. 强一致性读 是从leader进行读取 , follower节点仅仅从日志流复制日志,不承担任何流量
  2. 读写分离后 。读可能变成一种弱读。 读取落后时间 max_stale_time_for_weak_consistency=5s 。
  3. 降低leader节点的读取压力,
  4. 如果是3-3-3架构,并且primary_zone=‘z1,z2,z3’ unit_num=3 这种情况的话 ,每个observer都有leader节点 。 读写分离也能解决热点数据的问题。

读写分离是一种弱读。

3 个赞

primary zone 是 random 的话做读写分离意义不大,除非设置了primary zone

1 个赞

:+1: :+1: :+1: :+1:

好好学习,天天向上 :+1: :+1: :+1: