以下关于 ODP 对 SQL 语句路由策略说法正确的是

“OceanBase 集群的架构为同城三机房三副本(1-1-1),应用系统为实现弱一致性读,在 zone3 的 ODP 节点配置了读写分离和 LDC 路由。以下关于 ODP 对 SQL 语句路由策略说法正确的是: " "
A. LDC 的路由策略和读写分离策略的优先级相同,ODP 路由转发时随机根据任意一种路由策略进行转发。
B. LDC 路由策略和读写分离策略相互冲突,只能配置任意一种路由策略。
C. LDC 的路由策略优先级高于读写分离,ODP 在选择副本的时候,先检查 LDC 路由,再走读写分离路由 D. 读写分离的路由策略优先级高于 LDC 路由,ODP 在选择副本的时候,先检查读写分离策略,再走 LDC 路由”

1 个赞

ODP SQL 语句路由策略及LDC路由与读写分离策略的优先级

在OceanBase数据库集群中配置了LDC路由和读写分离的情况下,ODP(OceanBase Database Proxy)对SQL语句的路由策略如下:

LDC路由:LDC路由是基于地址位置的路由,它主要考虑的是IDC(逻辑机房概念)和Region(城市的概念)。当设置了LDC信息后,ODP就会默认使用LDC路由。

优先级:LDC路由是第二优先级的路由策略。这意味着,在某些情况下,如果其他更高优先级的策略不适用时,ODP会采用LDC路由来决定数据请求应该被发送到哪个OBServer节点。

读写分离:读写分离功能是为了降低主副本的压力,将非事务内的读请求路由到备副本上执行。

优先级:读写分离策略通过配置项proxy_route_policy进行控制,可以设置为follower_first或follower_only等值以实现弱读请求的路由。此策略的优先级高于随机路由但低于Primary Zone路由。因此,当涉及到读写分离时,ODP会优先考虑将读取操作路由至备副本,除非有更具体的路由规则需要遵守。

Primary Zone路由:这是一种确保强读请求尽可能发往Primary Zone内指定机器的策略,用于保证数据的一致性和可用性。

优先级:Primary Zone路由具有最高的优先级。对于那些无法计算路由的强读请求,ODP会直接将其路由至该租户的Primary Zone内的OBServer节点。
总结
最高优先级:Primary Zone路由
次高优先级:LDC路由
较低优先级:读写分离策略(通过proxy_route_policy配置)
最低优先级:随机路由

综上所述,在您提到的应用场景下,ODP首先会尝试按照Primary Zone路由原则处理请求;如果没有满足条件,则会考虑LDC路由;接着是依据读写分离策略进行路由选择;最后才会采取随机路由的方式。这种分层的路由机制旨在优化性能并确保数据访问的一致性与可靠性。
所以选C

3 个赞

了解下

学习下:
最高优先级:Primary Zone路由
次高优先级:LDC路由
较低优先级:读写分离策略(通过proxy_route_policy配置)
最低优先级:随机路由