首批通过分布式安全可靠测评,为关键业务系统打造
租户内路由概述
更新时间:2026-04-14 17:41:09
ODP 为租户内路由提供了丰富的功能,您可选择需要的路由功能进行使用,如在使用过程中遇到问题,可通过路由诊断功能查看 ODP 的路由选取过程,路由诊断的详细介绍可参见 路由诊断 章节。
ODP 租户内路由主要功能如下。
指定 IP 路由:通过 ODP 配置项(
target_db_server)或语句注释指定 OBServer 节点,ODP 会将语句准确路由至指定的 OBServer 节点。此路由功能优先级最高,当指定 IP 时,ODP 会忽略其他的路由功能。详细介绍请参见 指定 IP 路由。强读分区表路由:在强读分区表的语句中提供分区键值、表达式或分区名称,ODP 会将语句准确路由到数据所在分区的主副本 OBServer 节点执行。详细介绍请参见 强读分区表路由。
强读全局索引表路由:在强读主表的语句中提供全局索引表的列值、表达式或索引分区名称,ODP 会将语句准确路由到数据所在的索引分区的主副本 OBServer 节点执行。详细介绍请参见 强读全局索引表路由。
强读复制表路由:在强读复制表时,ODP 将语句路由至与 ODP 位置关系最近的 OBServer 节点执行。详细介绍请参见 强读复制表路由。
强读 Primary Zone 路由:通过 ODP 配置项配置 Primary Zone,ODP 将无法计算路由的强读语句路由至 Primary Zone 内的 OBServer 节点。详细介绍请参见 强读 Primary Zone 路由。
路由策略路由:ODP 按照用户配置的路由策略规则进行路由。详细介绍请参见 路由策略路由。
分布式事务路由:通过 ODP 配置项(
enable_transaction_internal_routing)开启,开启后事务内的语句不受事务开启节点限制,无需强制路由至事务开启的 OBServer 节点。详细介绍请参见 分布式事务路由。二次路由:通过 ODP 配置项开启后,当语句路由至某 OBServer 节点,但未命中分区或者分布式事务无法在该 OBServer 节点执行时,ODP 可以重新进行一次准确路由。详细介绍请参见 二次路由。
强制路由:用户无法控制此行为,由 ODP 决定是否强制路由,主要有以下几种情况。详细介绍请参见 强制路由。
非分布式事务路由,事务内语句强制路由至事务开启 OBServer 节点。
会话级临时表路由,对会话级临时表进行查询时,会强制路由至第一次查询临时表的 OBServer 节点。
复用会话路由,当计算路由失败且
enable_cached_server配置项开启时,ODP 会强制路由到上一次会话所在的 OBServer 节点。CURSOR/PIECES 路由,客户端使用 CURSOR/PIECES 流式获取/上传数据时,所有请求会强制路由至同一 OBServer 节点。
基于权重的负载均衡:通过 ODP 配置项(weadread_weight_zone)为 OceanBase 集群中的各个 Zone 设置权重,ODP 在路由时会基于权重进行负载均衡,详细介绍请参见 基于权重的负载均衡。
本章将详细介绍上述各个功能的具体使用方法以及相关示例供您参考。