面试题答案
一键面试配置服务器的作用
- 元数据存储:配置服务器存储了整个分片集群的元数据,包括分片信息(哪些数据块在哪个分片上)、数据库和集合的分片规则等。这些元数据对于查询路由至关重要,查询路由器(mongos)正是通过读取配置服务器中的元数据,才能准确地将客户端的读写请求路由到正确的分片上。
- 维护集群状态:它记录着集群的拓扑结构和状态信息,当集群发生变化(如添加或移除分片、修改分片规则等)时,配置服务器会更新并保存这些改变,使得整个集群始终保持一致的状态视图。
部署配置服务器以确保高可用性
- 多节点部署:为保证高可用性,建议部署至少3个配置服务器节点。这样即使其中一个节点出现故障,其他节点仍能继续提供元数据服务,维持集群的正常运行。
- 副本集配置:将这些配置服务器节点组成一个副本集。在副本集中,有一个主节点负责处理写操作和大部分读操作,其他从节点复制主节点的数据,当主节点发生故障时,副本集内部会自动进行选举,产生新的主节点,从而确保服务的连续性。
- 硬件和网络隔离:各个配置服务器节点应部署在不同的物理硬件上,并在网络层面进行隔离,避免因单个硬件故障或网络问题导致多个配置服务器同时不可用。
- 定期备份:对配置服务器的数据进行定期备份,以便在发生灾难性故障时能够快速恢复集群的元数据。可以使用MongoDB自带的备份工具(如mongodump)进行备份操作。