暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据库学习Q&A 091:OceanBase数据库如何选择副本路由选择(常规部署)?

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/


对于强一致性读,且 SQL 指定了表名,将路由到该表对应分区的 Leader 的 OBServer 节点;对于弱一致性读、登录认证请求、强一致性读但没有指定表名等情况,存在主备均衡路由(默认)、备优先路由、不合并备优先路由这三种路由策略。

主备均衡路由(默认)

将按照以下优先级进行路由选择:

  1. 相同 Region,相同 IDC,不在合并状态的节点。

  2. 相同 Region,不同 IDC,不在合并状态的节点。

  3. 相同 Region,相同 IDC,正在合并状态的节点。

  4. 相同 Region,不同 IDC,正在合并状态的节点。

  5. 不同 Region,不在合并状态的节点。

  6. 不同 Region,正在合并状态的节点。

备优先路由

常规部署下,支持备优先读策略。通过用户级别的系统变量 proxy_route_policy 控制,仅在常规部署和弱一致性读的情况下生效,优先读 Follower 而非主备均衡路由。

在常规模式部署和弱一致性读时,设置 set @proxy_route_policy='follower_first';,路由将优先发往备节点,即使 OBServer 节点处于正在合并状态。将按照以下优先级进行路由选择:

  1. 相同 Region,相同 IDC,不在合并状态的备节点。

  2. 相同 Region,不同 IDC,不在合并状态的备节点。

  3. 相同 Region,相同 IDC,正在合并状态的备节点。

  4. 相同 Region,不同 IDC,正在合并状态的备节点。

  5. 相同 Region,相同 IDC,不在合并状态的主节点。

  6. 相同 Region,不同 IDC,不在合并状态的主节点。

  7. 不同 Region,不在合并状态的备节点。

  8. 不同 Region,正在合并状态的备节点。

  9. 不同 Region,不在合并状态的主节点。

  10. 不同 Region,正在合并状态的主节点。

不在合并的备优先路由

常规部署下,弱一致性读,设置 set @proxy_route_policy='unmerge_follower_first'; 时,路由将优先发往不在合并的备节点。将按照以下优先级进行路由选择:

  1. 相同 Region,相同 IDC,不在合并状态的备节点。

  2. 相同 Region,不同 IDC,不在合并状态的备节点。

  3. 相同 Region,相同 IDC,不在合并状态的主节点。

  4. 相同 Region,不同 IDC,不在合并状态的主节点。

  5. 相同 Region,相同 IDC,正在合并状态的备节点。

  6. 相同 Region,不同 IDC,正在合并状态的备节点。

  7. 不同 Region,不在合并状态的备节点。

  8. 不同 Region,不在合并状态的主节点。

  9. 不同 Region,正在合并状态的备节点。

  10. 不同 Region,正在合并状态的主节点。


欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论