Root Service 如何理解?
@小助手
根据文档库中的信息,Root Service 是 OceanBase 集群的总控服务,负责集群的资源管理、容灾、负载均衡和 Schema 管理等功能。以下是详细解释:
-
功能描述:
- 资源管理:包括 Region/Zone/OBServer/Resource Pool/Unit 等元信息的管理,例如上下线 OBServer、改变 Tenant 资源规格等。
- 负载均衡:决定 Unit 在多个机器间的分布,并通过副本均衡和 Leader 均衡来优化资源使用和减少分布式事务执行的可能性。
- 容灾:通过自动复制、迁移等手段,保证日志流分布和类型与用户指定的 Locality 最终保持一致。
- Schema 管理:负责处理 DDL 请求并生成新 Schema。
-
高可用性:
Root Service 使用 Paxos 协议实现高可用性。可以通过集群配置指定 Root Service 服务副本数,各副本基于 Paxos 协议选举 Leader。Leader 副本上任后为集群提供 Root Service 服务。当当前 Leader 发生故障时,其他副本重新选举产生新的 Leader,继续提供服务。 -
节点状态监测:
Root Service 负责集群的节点管理,各节点通过心跳数据包(每 2 秒一次)定期向 Root Service 汇报自己的进程状态。Root Service 通过监测这些心跳数据包来获取 observer 进程的工作状态。 -
主节点查看:
在多 Zone 集群中,Root Service 会有多个副本,但只有一个为主节点(Leader),负责处理集群的管理和协调任务。如果主节点发生故障,可以通过以下 SQL 获取主节点 IP:SELECT svr_ip as RootService FROM oceanbase.DBA_OB_SERVERS WHERE with_rootserver='yes';
-
内存限制:
rootservice_memory_limit
参数用于设置 Root Service 的最大内存容量限制。 -
副本列表:
rootservice_list
参数用于显示 Root Service 及其副本所在的机器列表。
以上内容均来自《集群架构 → RootService》、《节点故障的自动处理 → Root Service 高可用》、《节点故障的自动处理 → 节点状态监测》、《使用命令行进行运维 → 常用 SQL → 集群基础 SQL → 查看 Root Service 主节点》、《rootservice_memory_limit → 功能描述》以及《rootservice_list》相关文档片段。
具体信息可参考以下文档: