首批通过分布式安全可靠测评,为关键业务系统打造
基于权重的负载均衡
更新时间:2026-04-14 17:41:11
背景介绍
ODP 目前功能和稳定性逐渐成熟,支持路由、高可用、连接管理等功能。但还缺少一些如防火墙、负载均衡等能力,为增强 ODP 云上竞争力和用户体验,ODP 自 V4.3.2 起支持基于权重的负载均衡,您可通过配置 weadread_weight_zone 为 OceanBase 集群中的各个 Zone 设置权重。
注意事项
该功能要求 ODP 为 V4.3.2 或以上版本。
仅支持配置为租户级别或 VIP 级别,且不能配置为空字符,否则会拦截报错。
没有配置的 Zone,弱读请求不会被路由到对应 Zone。
当配置 Zone 权重为 0 时,正常情况下弱读请求不会被路由到该 Zone,只会在其他权重非 0 的 Zone 不可用时才会选择该 Zone。
配置权重后,Zone 内表的 Partition 副本节点优先级高于 dummy_ldc 节点。dummy_ldc 内存在多个节点时,多个节点的优先级相同,请求会被随机路由。
配置权重后,若重试配置 Zone 的所有副本后仍无法找到可用副本,此时会进行断链接处理。
示例
设置 VIP 级别和租户级别的权重负载均衡路由策略
注意
使用基于权重的负载均衡功能时,弱读请求路由策略的配置级别需与权重的配置级别保持一致,否则路由可能会有问题(如:无法登录、内部请求失败等)。目前仅支持在租户级别和 VIP 级别设置各个 Zone 的权重。
replace into proxy_config(vid, vip, vport, tenant_name, cluster_name, name, value, config_level) values ('1', '10.10.10.1', '2881','tenent_1','cluster_1', 'proxy_route_policy','WEAKREAD_WEIGHT_LOAD_BALANCE','LEVEL_VIP'), ('2', '10.10.10.1', '3881','tenent_1','cluster_1', 'proxy_route_policy','WEAKREAD_WEIGHT_LOAD_BALANCE','LEVEL_VIP'), ('-1','','0','tenant_2','cluster_2','proxy_route_policy','WEAKREAD_WEIGHT_LOAD_BALANCE','LEVEL_TENANT');路由请求策略设置为
WEAKREAD_WEIGHT_LOAD_BALANCE表示选择权重负载均衡路由策略。为 OceanBase 集群中各 Zone 配置权重
以配置 VIP 级别和租户级别权重为例,示例如下:
replace into proxy_config(vid, vip, vport, tenant_name, cluster_name, name, value, config_level) values ('1', '10.10.10.1', '2881','tenent_1','cluster_1', 'weakread_weight_zone','zone1:90;zone2:80;zone3:70','LEVEL_VIP'), ('2', '10.10.10.1', '3881','tenent_1','cluster_1', 'weakread_weight_zone','zone1:80;zone2:90;zone3:70','LEVEL_VIP'), ('-1','','0','tenant_2','cluster_2','weakread_weight_zone','zone1:80;zone2:70;zone3:90','LEVEL_TENANT');说明
weakread_weight_zone 配置项仅支持配置为租户级别和 VIP 级别,配置为集群级别或全局级别时会拦截报错。
相关文档
弱读概念的介绍可参见官网《OceanBase 数据库》文档 参考指南系统原理事务管理事务并发和一致性弱一致性读 介绍。
设置弱读的相关介绍可参见 读写分离。
上文中提到的配置项的详细介绍可分别参见 proxy_route_policy 和 weakread_weight_zone。