关于 observer 进程,以下描述正确的是()
A. 一台服务器可以运行多个 observer 进程实例
B. observer 进程启动后,不需要向 RS 注册即可对外服务
C. observer 负责数据读写、存储、副本管理,接收 RootService 调度指令
D. observer 进程崩溃,所在节点全部租户直接永久不可用
正确答案:C
A. 一台服务器可以运行多个 observer 进程实例 — 不完全正确
OceanBase 数据库是单进程软件,进程名为 observer。生产环境中,通常一台物理或虚拟服务器只运行一个 observer 进程 ,由 IP 和端口作为唯一标识。虽然在学习测试环境中,一台机器可以启动多个 observer 进程来模拟多个节点(每个进程的监听端口和数据目录独立),但这并非生产推荐做法。因此 A 的表述不够准确。
B. observer 进程启动后,不需要向 RS 注册即可对外服务 — 错误
observer 进程启动后,需要加入集群并接受 RootService(RS)的管理。启动时需要通过 -r 参数指定 RootService 所在的机器列表,进程启动后会向集群注册,只有完成注册和加入流程后才能正常对外提供服务。
C. observer 负责数据读写、存储、副本管理,接收 RootService 调度指令 —
正确
observer 是 OceanBase 最核心的组件,负责几乎所有数据库内核功能,包括 SQL 引擎(数据读写)、存储引擎(数据存储)和事务引擎(副本同步管理) 。同时,RootService(RS)作为集群总控服务,负责资源管理、负载均衡、DDL 管理和故障恢复等调度工作,observer 节点接收并执行 RS 下发的调度指令。
D. observer 进程崩溃,所在节点全部租户直接永久不可用 — 错误
在多副本集群中,当某个 observer 进程崩溃时,RootService 会通过心跳检测发现节点失效,并自动触发选主流程 ,将故障节点上的 Leader 角色转移到健康副本上,业务在短暂停顿后即可恢复。只有在单副本 系统中,observer 进程不存在才会导致服务不可用。而且即使节点长时间不可用,也只是触发副本重建(rebuild),并非"永久不可用"。