Root Service 如何理解?

Root Service 如何理解?

@小助手

@论坛小助手

根据文档库中的信息,Root Service 是 OceanBase 集群的总控服务,负责集群的资源管理、容灾、负载均衡和 Schema 管理等功能。以下是详细解释:

  1. 功能描述

    • 资源管理:包括 Region/Zone/OBServer/Resource Pool/Unit 等元信息的管理,例如上下线 OBServer、改变 Tenant 资源规格等。
    • 负载均衡:决定 Unit 在多个机器间的分布,并通过副本均衡和 Leader 均衡来优化资源使用和减少分布式事务执行的可能性。
    • 容灾:通过自动复制、迁移等手段,保证日志流分布和类型与用户指定的 Locality 最终保持一致。
    • Schema 管理:负责处理 DDL 请求并生成新 Schema。
  2. 高可用性
    Root Service 使用 Paxos 协议实现高可用性。可以通过集群配置指定 Root Service 服务副本数,各副本基于 Paxos 协议选举 Leader。Leader 副本上任后为集群提供 Root Service 服务。当当前 Leader 发生故障时,其他副本重新选举产生新的 Leader,继续提供服务。

  3. 节点状态监测
    Root Service 负责集群的节点管理,各节点通过心跳数据包(每 2 秒一次)定期向 Root Service 汇报自己的进程状态。Root Service 通过监测这些心跳数据包来获取 observer 进程的工作状态。

  4. 主节点查看
    在多 Zone 集群中,Root Service 会有多个副本,但只有一个为主节点(Leader),负责处理集群的管理和协调任务。如果主节点发生故障,可以通过以下 SQL 获取主节点 IP:

    SELECT svr_ip as RootService FROM oceanbase.DBA_OB_SERVERS WHERE with_rootserver='yes';
    
  5. 内存限制
    rootservice_memory_limit 参数用于设置 Root Service 的最大内存容量限制。

  6. 副本列表
    rootservice_list 参数用于显示 Root Service 及其副本所在的机器列表。

以上内容均来自《集群架构 → RootService》、《节点故障的自动处理 → Root Service 高可用》、《节点故障的自动处理 → 节点状态监测》、《使用命令行进行运维 → 常用 SQL → 集群基础 SQL → 查看 Root Service 主节点》、《rootservice_memory_limit → 功能描述》以及《rootservice_list》相关文档片段。

具体信息可参考以下文档:

  1. 节点故障的自动处理
  2. 日志流和副本概述
  3. 集群架构
  4. 使用命令行进行运维
  5. rootservice_memory_limit
  6. rootservice_list
  7. 4500 ~ 4999
  8. SYS 租户/RS 服务问题
  9. JOB