OBProxy 支持备优先读路由策略,通过用户级别系统变量 proxy_route_policy 控制备优先读路由。备优先读仅在弱一致性读时生效,且优先读 follower 而非主备均衡选择。

    在 OceanBase 数据库支持的客户端工具中使用 root 用户登录集群的 sys 租户后,运行下述语句对系统变量 proxy_route_policy 进行设置:

    1. SET @proxy_route_policy='[policy]';
    1. 当取值为 follower_first 时,路由逻辑是优先发备(即使集群在合并状态)。优先级由高到低如下所示:

    同机房不合并的备 —> 同城不同机房不合并的备 —> 同机房在合并的备 —> 同城不同机房合并的备 —> 同机房不合并的主 —> 同城不同机房不合并的主 —> 不同城不合并的备 —> 不同城合并的备 —> 不同城不合并的主 —> 不同城合并的主

    1. 当取值为 unmerge_follower_first 时,路由逻辑是优先发不在集群合并状态的备机(Follower 节点)。优先级由高到低如下所示:

    同机房不合并的备 —> 同城不同机房不合并的备 —> 同机房不合并的主 —> 同城不同机房不合并的主 —> 同机房在合并的备 —> 同城不同机房合并的备 —> 不同城不合并的备 —> 不同城不合并的主 —> 不同城合并的备 —> 不同城合并的主

    1. 当取其他值时,退化至普通弱一致性读主备均衡的路由逻辑。优先级由高到低如下所示:

    同机房不合并的主或备 —> 同城不同机房不合并的主或备 —> 同机房在合并的主或备 —> 同城不同机房合并的主或备 —> 不同城不合并的主或备 —> 不同城合并的主或备