面对 OceanBase 集群上业务的迅速扩张、连接数迅猛增长的情况,终态解决方案应是水平扩展 OBProxy 代理服务,而实现水平扩展的重要技术手段就是负载均衡。目前 OceanBase 数据库的输出方式主要有两种:阿里云(专有云)和独立输出,随着输出方式的不同,选择的负载均衡方案也不同,OceanBase 数据库中可能使用以下三种负载均衡技术:

  • 阿里云(专有云)SLB

  • DNS Mode

当 OceanBase 数据库随阿里云(专有云)平台整体输出时,应用部署在 VPC 的 ECS 中,而 OBServer 机器位于经典网络中,OBProxy 安装在部分 OBServer 机器上,将安装有 OBProxy 代理服务的 OBServer 机器作为后端服务器组添加到 SLB 实例,由 SLB 提供 VIP 及端口给应用来访问。具体拓扑图如下所示:

SLB 可提供四层和七层的负载均衡服务,具有后端服务器的健康检查功能,⾃动屏蔽异常状态的服务器,待该服务器恢复正常后⾃动解除屏蔽。同时⽀持⽩名单访问控制,通过添加负载均衡监听的访问⽩名单,仅允许特定 IP 访问负载均衡服务。

除了搭载阿里云(专有云)平台整体输出以外,OceanBase 数据库也支持独立部署,提供适配机型给用户选择,安装部署 OceanBase 数据库在用户的机房中。如果用户有 F5 负载均衡设备,可用作 OBProxy 代理服务的负载均衡。部署架构图与阿里云(专有云)SLB 类似,只需将 SLB 替换成 F5 即可。

在 OceanBase 数据库独立部署时,如果用户没有 F5 负载均衡设备,可以考虑使用 DNS mode 来做负载均衡,但由于DNS Mode 这种负载均衡方式不会考虑容错,一旦后端服务器发生故障也无法感知和自动屏蔽,存在一定的业务风险。另外,DNS Mode 负载均衡方式还存在调度负载算法单一和不支持白名单等问题。