
mongock professional 按“生产数据库实例”计费,每实例每月 20 美元,最低订购 5 个单位;非生产环境免费,且单库内 changeunit 数量无限制。
mongock professional 按“生产数据库实例”计费,每实例每月 20 美元,最低订购 5 个单位;非生产环境免费,且单库内 changeunit 数量无限制。
Mongock Professional 的定价模型简洁明确,但容易因术语误解导致预算偏差。其核心计费单元并非代码中的 ChangeUnit 类、也不是部署节点或应用服务实例,而是实际在生产环境中使用 Mongock 执行迁移的 MongoDB 数据库(即独立的 MongoDB 连接/数据库命名空间)。
✅ 什么是“1 个 Unit”?
- 定义:一个 MongoDB 生产数据库(例如 myapp-prod、analytics-prod),只要该库中已集成 Mongock 并启用迁移执行(即 Mongock 初始化并连接该库),即计为 1 个付费单位。
-
关键说明:
- 同一应用连接多个库?→ 每个库单独计费(如订单库 + 用户库 + 日志库 = 3 units)。
- 单库部署多副本集或分片集群?→ 仍视为 1 个逻辑数据库,仅计 1 unit。
- 使用 ChangeUnit 的数量、复杂度或执行频次 完全不计入费用 —— Mongock 明确承诺 “unlimited ChangeUnits per database”。
? 计费示例(帮助快速估算)
假设您的微服务架构包含以下生产 MongoDB 实例:
| 服务名称 | 数据库名 | 是否使用 Mongock 迁移? | 计费单位 |
|---|---|---|---|
| 用户中心 | users-prod | ✅ 是 | 1 |
| 订单系统 | orders-prod | ✅ 是 | 1 |
| 支付对账 | reconciliation-prod | ✅ 是 | 1 |
| 客户分析 | analytics-prod | ❌ 仅读取,无 schema 迁移 | 0 |
→ 总计 3 个生产单位,但因最低起订量为 5 units,实际月费 = 5 × $20 = $100。
⚠️ 注意:即使当前仅用 3 个库,也需按 5 units 支付;若后续扩展至 6 个库,则费用升至 0/月(6 × ),无需重新签约。
? 环境豁免政策(重要成本优势)
- 开发(dev)、测试(test)、预发(staging)等非生产环境:完全免费,不限数据库数量或 Mongock 使用强度。
- 验证方式:Mongock 通过 spring.profiles.active 或 mongock.environment 配置识别环境;建议显式设置 mongock.environment=production 仅用于生产,避免误触发计费。
? 如何确认是否被计费?
Mongock 在首次成功执行迁移时,会在目标数据库中自动创建两个集合(collection):
// 示例:MongoDB shell 查看
use users-prod
db.listCollections().toArray()
// 输出中应包含:
// { name: "mongock_change_log", ... }
// { name: "mongock_lock", ... }
只要这两个集合存在且有写入记录(如 changeId, executionDate),即表明该库已被识别为 Mongock 生产实例 —— 正式计入 license 单位。
✅ 最佳实践建议
- 集中管理迁移入口:避免同一业务域内多个服务各自连接同一数据库并初始化 Mongock(可能被重复识别)。
- 清理废弃库:停用的生产库应及时卸载 Mongock 或删除 mongock_* 集合,防止持续占用 unit。
- 利用免费层验证:在 staging 环境充分测试所有 ChangeUnit 逻辑,确保上线后一次通过,减少生产库迭代次数。
综上,Mongock Professional 的定价本质是为生产数据一致性保障能力付费,而非代码行数或变更频率。精准统计真实使用的 MongoDB 生产库数量,并结合 5-unit 起订规则进行容量规划,即可高效控制 TCO(总拥有成本)。











