业务需要实现读写分离,用oceanbase怎么实现呢?

【产品名称】oceanbase

【产品版本】oceanbase

【问题描述】需求实现读写分离,例如:写库地址1,读库地址2,程序通过配置写库地址1和读库地址2来实现读写分离业务路由,oceanbase怎样来提供两个地址,一个用于写入口,一个用于读入口。

可以参考:https://www.oceanbase.com/docs/oceanbase-database/oceanbase-database/V3.1.2/read-write-splitting

首先要理解OB 三副本,默认只有主副本可以提供读写,两个备副本是不提供服务的。默认这种读写模式是强一致性读。OB还提供弱一致性读,可以在主副本和备副本之间就近挑选副本读。有些核心业务的读写分离为了彻底隔离对交易业务的影响,还可以使用只读副本(3副本之外的副本)。对只读副本的读也是弱一致性读。备副本和只读副本都只能读不能写。

技术上 访问OB都要使用obproxy。如果业务不想改SQL,可以配置独立的OBPROXY用于专门访问只读副本或者备副本。OBPROXY需要设置一些 IDC属性以实现就近备副本或只读副本的访问。

以后OBPROXY也会提供一个能力,就是不用业务改,经过这个OBPROXY的访问都走只读副本。

具体使用方法请参考:OceanBase 读写分离方案全攻略 - OceanBase