关于 observer 进程,以下描述正确的是() A. 一台服务器可以运行多个 observer 进程实例 B. observer 进程启动后,不需要向 RS 注册即可对外服务 C. observer 负责数据读写、存储、副本管理,接收 RootService 调度指令 D. observer 进程崩溃,所在节点全部租户直接永久不可用

关于 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 调度指令 — :white_check_mark: 正确

observer 是 OceanBase 最核心的组件,负责几乎所有数据库内核功能,包括 SQL 引擎(数据读写)、存储引擎(数据存储)和事务引擎(副本同步管理) 。同时,RootService(RS)作为集群总控服务,负责资源管理、负载均衡、DDL 管理和故障恢复等调度工作,observer 节点接收并执行 RS 下发的调度指令。

D. observer 进程崩溃,所在节点全部租户直接永久不可用 — 错误

在多副本集群中,当某个 observer 进程崩溃时,RootService 会通过心跳检测发现节点失效,并自动触发选主流程 ,将故障节点上的 Leader 角色转移到健康副本上,业务在短暂停顿后即可恢复。只有在单副本 系统中,observer 进程不存在才会导致服务不可用。而且即使节点长时间不可用,也只是触发副本重建(rebuild),并非"永久不可用"。