正在备考 OBCA‑V4 认证,看文档对集群两大核心组件有点混淆。
1.observer
2.root service
想请教下两者分工是什么?分别负责集群哪些工作?在小规模测试集群里,部署上有什么注意点?
Observer 与 RootService 组件作用的区别
根据您提到的学习需求以及提供的文档片段,我可以帮助您区分 OceanBase 数据库中 Observer 和 RootService 这两个核心组件的作用,并且指出它们在集群中的职责分工。同时,我也会给出一些关于小规模测试集群部署时需要注意的点。
1. Observer (OBServer)
-
基本定义:
- OBServer 是运行
observer进程的物理机或虚拟机,在OceanBase数据库内部由其IP地址和服务端口唯一标识。
- OBServer 是运行
-
功能概述:
- 负责存储数据和执行 SQL 请求。
- 每个 OBServer 可以承载多个租户的数据,并提供服务给客户端。
-
配置文件:
- 配置项分为集群级和租户级,存储于工作目录下的
etc/observer.conf.bin文件中,包括但不限于 MySQL 端口号、RPC 端口号等重要信息(查看详细配置项)。
- 配置项分为集群级和租户级,存储于工作目录下的
-
状态监测:
- 通过心跳机制向 RootService 报告自身的状态信息,从而实现节点健康状况的监控。
2. RootService (RS)
-
基本定义:
- RootService 作为集群内的总控服务运行在某一个 OBServer 上。
- 当当前 RootService 主节点所在服务器故障时,其他服务器会选举出一个新的主节点来接替任务。
-
主要功能:
- 资源管理: 对 Region/Zone/OBServer/Resource Pool/Unit 等进行元信息管理。
- 负载均衡: 根据不同机器上的资源使用情况调整 Unit 的分布。
- 容灾处理: 自动复制和迁移日志流副本以符合用户设定的 Locality。
- Schema 管理: 处理 DDL 请求并更新 Schema 信息。
-
主节点定位:
- 在多 Zone 集群架构下,虽然可能存在多个 RootService 副本,但只有一个是活动状态的 Leader。可以通过特定的 SQL 查询获得当前活动的 RootService 主节点 IP 地址:
获取更多有关DBA_OB_SERVERS视图的信息SELECT svr_ip as RootService FROM oceanbase.DBA_OB_SERVERS WHERE with_rootserver='yes';
- 在多 Zone 集群架构下,虽然可能存在多个 RootService 副本,但只有一个是活动状态的 Leader。可以通过特定的 SQL 查询获得当前活动的 RootService 主节点 IP 地址:
小规模测试集群部署注意事项
- 最小化配置: 对于实验性环境,您可以从最少数量的 OBServer 开始(例如 3 台),每台服务器上至少有一个 Zone 保证高可用性。
- 网络稳定性: 确保所有参与节点之间能够稳定通信,特别是在跨区部署的情况下。
- 硬件规格: 即便是在测试环境中,也建议为每个节点分配足够资源以避免因资源不足导致性能瓶颈。
- 版本一致性: 所有节点应该安装相同版本的软件包,以防止潜在兼容性问题。
- 监控工具准备: 准备好必要的监控工具如 OCP (OceanBase Control Platform),以便更好地观察集群行为及调优。
希望这些信息对您的学习有所帮助!如果还有其他具体问题或需要进一步了解的地方,请随时提问。祝您备考顺利!
详情请参考: