OBProxy节点主要起什么作用?
在 OceanBase 的分布式架构中,OBProxy(OceanBase Database Proxy)是数据库专用的接入层代理。它的核心作用是屏蔽底层分布式集群的细节,让应用程序能够像访问单机数据库一样简单地访问整个分布式集群。
具体而言,OBProxy 主要发挥以下几个关键作用:
- 统一访问入口与反向路由 OBProxy 作为统一的反向代理,接收客户端发出的 SQL 请求。它能够感知集群内表和分区的物理位置,通过轻量级的 SQL 解析,将请求精准转发至数据所在的最佳目标 OBServer 节点上执行,最后将结果返回给用户。
- 高性能的轻量化处理 OBProxy 仅对 SQL 进行基本的路由解析和转发,不参与复杂的数据计算或执行计划的生成调度。这种无状态的轻量化设计使其具备极高的性能,单个 OBProxy 进程每秒可支持百万次的请求转发服务。
- 高可用与故障容错 OBProxy 是一个无状态的服务进程,不做任何数据持久化,多个 OBProxy 之间互相独立且互不感知,通常借助负载均衡(如 VIP、F5 等)来实现高可用。此外,它能主动探测后端 OBServer 的状态,当节点发生故障、宕机或升级时,会自动屏蔽问题节点并重建连接,确保业务无感知。
- 高级流量管理(读写分离与事务拆分) 除了基础的路由功能,OBProxy 还支持丰富的流量控制策略。它可以充分考虑副本位置、机器负载等情况实现最佳路由,同时支持读写分离、事务拆分以及串联保持等特性,从而最大程度地保证整体的高性能运转。
- 灵活的连接管理 OBProxy 能够将应用与数据库的连接拆分为两段(应用到 OBProxy,OBProxy 到 OBServer),维持每个节点的会话状态,为客户端提供高效的连接池管理能力。