前言
在 OceanBase 数据库中,OBproxy 是一个无状态的服务器代理,负责将客户端的请求路由到 OceanBase 集群中的适当服务器上。
OBProxy 无状态的概述
OBProxy 不存储任何会话状态信息,不会因为自身的状态影响到请求的处理。
“即使宕机重启也不会影响数据一致性,OBProxy 在部署时会带有一个守护进程 obproxyd.sh,周期性检查 OBProxy 的健康程度,一旦发现宕机就立即重启 OBProxy。”——摘自OBCP官方文档3.0
OBProxy 无状态特性带来的优点
1. 高可用
- OBProxy 不存储状态。
- 任何 OBProxy 实例故障都可快速被其他健康的 OBProxy 替换,客户端的请求可以被 F5 等负载均衡到其他健康的 OBProxy 上。
2. 负载均衡
- 不需要考虑状态信息。
- OBProxy 可以根据负载均衡情况将请求更加灵活高效的分发到不同的服务器上。
3. 水平扩展
- OBProxy 无状态,OBProxy 的扩展不受状态同步的制约。
- 可以增加更多的 OBProxy 实例来处理更多的请求。
4. 透明性
- OBProxy 负责处理所有路由和请求转发。
- 客户端不需要知道后端 observer 的具体信息。