OBProxy 支持备优先读路由策略,通过用户级别系统变量 proxy_route_policy
控制备优先读路由。备优先读仅在弱一致性读时生效,且优先读 follower 而非主备均衡选择。
在 OceanBase 数据库支持的客户端工具中使用 root 用户登录集群的 sys 租户后,运行下述语句对系统变量 proxy_route_policy
进行设置:
SET @proxy_route_policy='[policy]';
- 当取值为
follower_first
时,路由逻辑是优先发备(即使集群在合并状态)。优先级由高到低如下所示:
同机房不合并的备 —> 同城不同机房不合并的备 —> 同机房在合并的备 —> 同城不同机房合并的备 —> 同机房不合并的主 —> 同城不同机房不合并的主 —> 不同城不合并的备 —> 不同城合并的备 —> 不同城不合并的主 —> 不同城合并的主
- 当取值为
unmerge_follower_first
时,路由逻辑是优先发不在集群合并状态的备机(Follower 节点)。优先级由高到低如下所示:
同机房不合并的备 —> 同城不同机房不合并的备 —> 同机房不合并的主 —> 同城不同机房不合并的主 —> 同机房在合并的备 —> 同城不同机房合并的备 —> 不同城不合并的备 —> 不同城不合并的主 —> 不同城合并的备 —> 不同城合并的主
- 当取其他值时,退化至普通弱一致性读主备均衡的路由逻辑。优先级由高到低如下所示:
同机房不合并的主或备 —> 同城不同机房不合并的主或备 —> 同机房在合并的主或备 —> 同城不同机房合并的主或备 —> 不同城不合并的主或备 —> 不同城合并的主或备