OBCP第五章 OBProxy路由策略与使用运维-简介

背景

OceanBase数据库是分布式数据库,每个表甚至每个表的不同分区都可能存放在不同的机器上。想要对表进行读写,必须 先要定位到数据所属的表或是分区的主副本位置,然后才能执行相应的SQL DML语句,这在应用层面而言是几乎不可能做到的

OBProxy作为OceanBase数据库专用的反向代理软件,其核 心功能就是路由以将客户端发起的数据访问请求转发到正确的OBServer上

客户端通过OBProxy访问OceanBase数据库的数据链路如 图所示,用户通过任意Client驱动发出请求,请求通过负载 均衡组件访问到任意一台无状态的 OBProxy上,然后OBProxy 再将用户请求转发到后端 OceanBase 集群中最佳的 OBServer 上去执行

                           

OBProxy核心功能(路由)

OBProxy作为OceanBase的高性能反向代理服务器,其核心功能就是路由转发

OBProxy路由的目标是将具体SQL转发到最恰当的Server上执行,路由的核心过程包括:

简单的SQL Parser,LDC路由,读写分离,备优先读,黑名单机制,下图为OBproxy的路由逻辑

 路由功能举例

OBProxy核心功能(连接管理)

在observer宕机/升级/重启时,客户端与OBProxy的连接不会断开,OBProx可以迅速切换到正常的server上,对应用透明

OBProxy支持用户通过同一个OBProxy访问多个OceanBase集群

Server session对于每个client session独占

同一个client session对应server session状态保持相同(session变量同步)

OBProxy核心功能(监控&&运维)

周期性汇报统计项到OCP,实现了语句级别,事务级别,session级别,Obproxy级别的各种统计

Xflush日志监控(包括慢查询监控、error包监控等)

SQL Audit功能

实现了大量内部命令来实现远程监控,查询和运维