1559 字
8 分钟
FerretDB —— 开源SLDB的又一选择

【译】FerretDB v2 GA:开源 MongoDB 替代品,生产就绪#

s

FerretDB v2.0 的正式发布(GA)为开发者带来了一个高性能、完全开源且生产就绪的 MongoDB 替代方案。在与微软合作一年后,这一版本将 Azure Cosmos DB for MongoDB (vCore) 的引擎与 FerretDB 结合,并采用 Apache 2.0 许可证。v2.0 在性能、兼容性、可扩展性和灵活性方面实现了重大突破。以下是主要亮点:

  • 性能提升:基于微软的 DocumentDB,某些工作负载下速度提升超过 20 倍。
  • MongoDB 兼容性:增强的协议支持,实现近乎无缝的应用迁移。
  • 向量搜索:内置支持 AI 驱动的用例。
  • 复制增强:更强的数据持久性和灾难恢复能力。
  • 企业支持:提供订阅和咨询服务,助力业务扩展。
  • FerretDB 云:完全托管的数据库即服务(DBaaS)解决方案。

FerretDB v2.0 已准备好满足您的文档数据库需求。您可以从 GitHub 下载,或通过 FerretDB 云 注册云服务。


为什么选择 FerretDB?#

MongoDB 曾经是开源社区的明星,但其转向 SSPL 许可证让许多项目(尤其是开源项目和初创企业)对限制性条款感到不满。FerretDB 应运而生:它是一个真正开源的文档数据库,保持了 MongoDB 的兼容性,同时赋予开发者更大的自由。无论您在本地、云端还是混合环境中运行,FerretDB 都不会让您受限于专有系统或失去控制权。

pg


FerretDB v2.0 的核心特性#

性能飞跃#

FerretDB v2.0 利用微软新开源的 DocumentDB PostgreSQL 扩展,大幅提升了性能。内置的 BSON 数据类型和操作使其能够高效处理文档存储和查询。与 v1.x 相比,v2.0 在某些工作负载下的性能提升了 20 倍以上——这对现代应用中常见的密集读写场景尤为关键。

MongoDB 兼容性升级#

此版本扩展了对 MongoDB 线协议的支持,新增了更多命令、聚合管道和数据类型。从 MongoDB 迁移到 FerretDB 现在几乎无缝——大多数应用无需修改代码即可运行。作为一名 Cloud Native 工程师,我建议您仍需运行测试套件以验证边缘情况,但兼容性已非常可靠。

AI 驱动的向量搜索#

AI 和机器学习正在改变应用开发模式,而向量搜索对于基于相似性的查询至关重要。FerretDB v2.0 引入了原生向量搜索功能,允许用户在文档中存储和查询向量数据。这对于推荐系统、语义搜索等 AI 应用是一个重大突破,且无需额外的向量数据库。

复制功能优化#

通过多副本集和自动故障转移,高可用性(HA)和数据持久性得到显著增强。对于生产环境,这意味着更少的宕机风险和数据丢失担忧。对于任何严肃的数据库来说,这不再是可选功能,而是基本要求。

企业级支持#

FerretDB 现提供订阅和咨询服务,向企业市场迈进。这包括专家指导、专用支持和性能优化。对于架构师而言,这表明 FerretDB 已准备好支持关键任务系统,而不仅是实验性项目。

FerretDB 云#

全新的 FerretDB 云是一个托管的 DBaaS 产品,目前支持 AWS 和 GCP,Azure 等平台也在计划中。它消除了运维负担——如补丁管理、扩展和备份——让您专注于开发。我认为这完美契合“即服务”的理念。


FerretDB 与 MongoDB:快速对比#

FerretDB 定位为 MongoDB 的直接替代品,尤其适合重视开源原则的用户。以下是两者的对比表格:

特性FerretDBMongoDB
许可证Apache 2.0(开放且宽松)SSPL(对某些用户有限制)
后端PostgreSQL + DocumentDB自定义存储引擎
兼容性MongoDB 5.0+ 线协议原生 MongoDB 协议
性能某些工作负载下提升 20 倍为文档存储优化
功能核心 MongoDB 功能 + 向量搜索高级聚合、分析
生态系统发展中,背靠 PostgreSQL成熟且广泛验证

FerretDB 以 PostgreSQL 作为后端是一个隐藏的亮点。您不仅获得了一个 MongoDB 替代品,还能利用 PostgreSQL 的强大生态系统(例如 pgAdmin、备份工具和高可用性方案)。对于已在技术栈中使用 PostgreSQL 的团队,这是一个巨大的加分项。

s


未来展望#

FerretDB 2.1 计划于 3 月底发布,承诺进一步优化性能,尤其是针对索引查询和聚合。可观测性(observability)也在路线图上,未来将更容易调试兼容性或性能问题。长远来看,FerretDB 计划完善会话和事务支持,这对复杂应用至关重要。

更宏大的目标是通过 OpenDocDB 倡议,为文档数据库建立一个开放标准,类似于 SQL 在关系型数据库中的地位。这是一个雄心勃勃且令人兴奋的愿景,值得社区共同努力。


总结#

FerretDB v2.0 是一个值得庆祝的里程碑——一个高性能、开源的 MongoDB 替代品,已准备好迎接生产环境的挑战。无论是迁移现有工作负载还是全新开发,它都提供了令人信服的选择,兼具性能、兼容性和灵活性。

FerretDB 的发展让人感到振奋。MongoDB 的许可证变化留下了一个缺口,而 FerretDB 以其独特方式填补了这一空白。PostgreSQL 的集成堪称妙招,将文档数据库的灵活性与关系型数据库的可靠性相结合。不过,它仍是一个年轻项目,社区和生态系统需要时间成熟。因此,在选择时需根据应用需求谨慎评估。但不可否认,FerretDB 在 Cloud Native 领域的潜力巨大——让我们拭目以待!


资源#


参考资料#

FerretDB —— 开源SLDB的又一选择
https://fuwari.vercel.app/posts/ferret_db/
作者
Simon
发布于
2025-04-12
许可协议
CC BY-NC-SA 4.0