首批通过分布式安全可靠测评,为关键业务系统打造
OBProxy 管理概述
更新时间:2026-04-14 15:11:02
本节为您介绍 OBProxy 的作用和 OCP 为 OBProxy 提供的管理功能。
OBProxy 概述
OceanBase 数据库与传统单机数据库不同,OceanBase 数据库是分布式数据库,每个表甚至每个表的不同分区都可能存放在不同的机器上。想要对表进行读写,必须先要定位到数据所属的表或是分区的主副本位置,然后才能执行相应的 SQL DML 语句,这在应用层面而言是几乎不可能做到的。OBProxy 作为 OceanBase 数据库专用的反向代理软件,其核心功能就是路由以将客户端发起的数据访问请求转发到正确的 OBServer 节点上。
客户端通过 OBProxy 访问 OceanBase 数据库的数据链路如下图所示,用户通过任意 Client 驱动发出请求,请求通过负载均衡组件访问到任意一台无状态的 OBProxy 上,然后 OBProxy 再将用户请求转发到后端 OceanBase 集群中最佳的 OBServer 节点上去执行。
说明
- 这里负载均衡组件可以是市场上常见的产品,例如 SLB 和 F5 等。
- OBProxy 不负责分库分表,也不作为 SQL 引擎参与执行计划的生成调度,只负责纯粹的反向代理转发。
每个 OBServer 节点均包含完整的 SQL 引擎和存储引擎,用来负责解析用户 SQL 以生成物理执行计划并执行。分布式的 OBServer 节点之间通过 Paxos 协议以保证高可用性。这种架构设计中,OBProxy 只承担基本的路由和容灾功能,而数据库的功能全部交由 OBServer 节点实现。这样更加简单明确的分工可以将各组件性能做得更加极致,OceanBase 数据库整体最高也能做到近似访问单机数据库的性能。
OBProxy 支持将请求正确发送至主副本,并且通过特定配置还支持读写分离和备优先读等场景。另外在 OBServer 节点发生宕机、升级或合并等状态时,可以通过黑名单机制确保用户请求可以被路由至状态正常的 OBServer 节点上。

OCP 支持 obproxy 进程随 ocp_agent 开机自启动功能,当机器重启后,会自动拉起 obproxy 并恢复至机器重启前的状态,详情可参见 OCP Agent 进程。