主要使用OB数据库的公司是怎么设计自己的架构的?能具体说说大部分采用的方案吗?
5 个赞
使用 OceanBase(OB)的公司(尤其是金融、电信等核心业务场景)通常采用“Shared-Nothing 分布式架构 + 多租户资源隔离 + Paxos 高可用部署”的设计方案,旨在实现金融级高可用(RPO=0)、弹性扩展及 HTAP 混合负载能力。
1. 核心架构设计模式
1.1 分层接入与路由:应用层不直连数据库节点,而是通过OBProxy(ODP)集群接入。OBProxy 无状态,负责 SQL 解析、智能路由、负载均衡及读写分离,对外提供统一 VIP 或域名,屏蔽底层数据分片细节 。
1.2 多租户资源隔离:在单个 OB 集群内创建多个租户(Tenant),每个租户逻辑上等同于独立数据库实例。通过资源单元(Unit)配置 CPU/内存配额,实现不同业务线(如交易、分析、测试)的物理资源隔离,避免相互干扰,提升资源利用率 。
1.3 存储与计算引擎:底层采用LSM-Tree存储引擎,写入全顺序化以支撑高并发;支持行存+列存一体化,原生支持 HTAP,同一份数据可同时服务 OLTP 交易和 OLAP 实时分析,无需额外 ETL 同步至数仓 。
1.4 强一致性复制:数据默认采用Multi-Paxos 协议进行多副本同步。每个数据分片(Tablet)有 3 或 5 个副本分散在不同可用区(Zone),多数派持久化成功后即确认提交,确保故障时数据零丢失 。
2.主流部署容灾方案
大部分企业根据容灾等级要求,采用以下两种典型部署拓扑:
2.1 三地五中心(最高等级)
架构:跨越 3 个城市部署 5 个可用区(Zone),通常配置5 副本。
场景:满足银行核心系统等对“城市级灾难”零容忍的需求。任意两个城市故障,剩余多数派副本仍可自动选主提供服务,RPO=0,RTO<30 秒 。
特点:成本较高,但具备极强的异地容灾能力,符合金融监管最高标准 。
2.2 同城三机房(主流标准)
架构:在同一城市的 3 个不同机房部署3 副本,每个机房对应一个 Zone。
场景:适用于绝大多数核心及一般业务系统。单机房故障不影响服务,网络延时低(<5ms),事务性能最优 。
特点:性价比最高,是国有大行、股份制银行替换 Oracle/MySQL 时的首选方案 。
可以参考一下文档:
1. https://open.oceanbase.com/blog/24382023760
2. https://www.modb.pro/db/328724
3 个赞
一般公司都是使用一个集群,多租户数据库架构!以及灵活的扩展能力!
1 个赞
两地三中心,三地五中心的高可用容灾架构吧
1 个赞
三副本(1:1:1)+备租户架构
1 个赞
看场景,看目的,比如poc阶段,可能是功能行的,设备配置啥的不一定像生产或准生产那么高,主要是功能性测试。
1 个赞
银行业(核心交易系统:账户、核心账务、手机银行、信贷)
业务诉求
零数据丢失(RPO=0)、城市级故障不中断(RTO<30 秒)、严格强一致、分布式事务稳定,满足金融监管;同时兼容 Oracle,实现去 IOE 改造OceanBase。
架构设计
- 部署架构:三地五中心(金融最高标准)
- 同城 3 个 Zone(同城市 3 个机房)+ 异地 2 个 Zone(跨城灾备),共 5 个机房;分区采用5 副本模式,保证城市级灾难无损切换。
- 主写流量集中在同城主机房,异地副本仅做灾备,不承担写入压力。
- 租户拆分(多租户隔离)
- 拆分独立租户:核心账务租户、互联网渠道租户、报表分析租户;
- 用资源池 + Unit 资源隔离,交易租户(OLTP)与报表租户(OLAP)物理资源隔离,杜绝大查询拖垮核心交易OceanBase。
- 表与分区设计
- 选择业务自然分片键(客户号、账号)做哈希分区,数据均匀打散;
- 订单、流水采用范围分区(按日期),方便定期清理历史冷数据;
- 核心热点表配置表组
SHARDING=ON,分区均匀分散多节点,避免单机热点。
- 读写架构
- ODP 开启读写分离:写请求路由到分区主副本;普通查询分流到备副本,分摊主节点压力;
- 跨分区分布式事务严格控制数量,业务尽量按分区键拆分事务,减少 2PC 开销。
- 高可用 Paxos 自动选主,单节点 / 机房故障自动切换;搭配应用层单元化多活,同城双活流量互切。
1 个赞