MongoDB - 部署
MongoDB - 现代部署与监控
Section titled “MongoDB - 现代部署与监控”为生产环境部署 MongoDB 需要战略性方法。现代最佳实践侧重于高可用性、可伸缩性和强大的监控。单实例管理的时代已经过去;今天的应用程序依赖于集群化且通常基于云的部署。
现代部署选项
Section titled “现代部署选项”您的主要部署选择是在完全托管的云服务或自托管环境之间进行。
- MongoDB Atlas (推荐):一种完全托管的云原生数据库即服务 (DBaaS)。Atlas 自动处理 AWS、Azure 和 Google Cloud 上的配置、伸缩、备份、安全和监控。对于大多数新项目来说,它是推荐的路径,因为它消除了操作开销。
- 自托管 (本地或私有云):您管理整个 MongoDB 基础设施,包括硬件、安装、配置和维护。这提供了最大的控制权,但需要大量的专业知识。MongoDB Kubernetes Operator 或 Ansible 等工具可以帮助自动化这些部署。
关键部署概念
Section titled “关键部署概念”- Replica Set(副本集):高可用性的基础。副本集是维护相同数据集的 MongoDB 服务器集群。一个节点充当主节点 (primary)(处理所有写入操作),而其他节点充当从节点 (secondary),复制主节点的数据。如果主节点发生故障,从节点会自动被选举为新的主节点,确保您的应用程序保持在线。
- Sharding(分片):水平可伸缩性的基础。分片将数据分布在多个服务器(或副本集)上。这使得您的数据库可以超越单个服务器的限制进行伸缩,支持海量数据集和高吞吐量工作负载。MongoDB Atlas 可以自动化分片集群的设置和管理。
现代监控工具
Section titled “现代监控工具”主动监控对于性能和稳定性至关重要。虽然仍存在传统的命令行工具,但现代部署依赖于全面的监控平台。
主要监控:MongoDB Atlas UI
Section titled “主要监控:MongoDB Atlas UI”如果您使用 MongoDB Atlas,您将获得一套功能强大的内置监控套件。它提供了一个图形仪表盘,显示实时和历史指标,包括:
- 操作计数:插入、查询、更新、删除。
- 查询性能:使用性能顾问 (Performance Advisor) 识别慢查询。
- 硬件使用情况:CPU、RAM、磁盘 IOPS 和存储。
- 复制状态:副本集成员的延迟和健康状况。
- 告警:配置关键事件的告警,例如 CPU 使用率过高或主节点降级。
自托管环境:MongoDB Ops Manager / Cloud Manager
Section titled “自托管环境:MongoDB Ops Manager / Cloud Manager”对于自托管部署,Ops Manager 是 Atlas 控制平面的本地部署等效产品。它为您的基础设施提供监控、告警、备份和自动化功能。
快速检查的传统命令行工具
Section titled “快速检查的传统命令行工具”mongostat 和 mongotop 仍然适用于对特定服务器进行快速、实时的诊断,但它们不能替代完整的监控系统。
- mongostat:提供运行中的
mongod或mongos实例状态的快速概览。它就像 MongoDB 的vmstat。 - mongotop:跟踪 MongoDB 实例在每个集合上读写数据所花费的时间。它对于识别哪些集合负载最重很有用。
要运行它们,您可以在终端中执行命令。例如:
# Example of running mongostatmongostat --uri "mongodb+srv://<user>:<password>@<cluster-uri>"
# Example of running mongotop for 10 secondsmongotop --uri "mongodb+srv://<user>:<password>@<cluster-uri>" 10