尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

FerretDB v1.16.0 发布解析:capped collection 的 DeleteAll 支持、代理模式 TLS 与 Docusaurus v3 迁移

发布时间:2026/9/24 5:23:35

资讯中心
01
ARTICLE

FerretDB v1.16.0 发布解析:capped collection 的 DeleteAll 支持、代理模式 TLS 与 Docusaurus v3 迁移

FerretDB v1.16.0 发布解析:capped collection 的 DeleteAll 支持、代理模式 TLS 与 Docusaurus v3 迁移
后端数据库文档数据库【免费下载链接】FerretDBA truly Open Source MongoDB alternative项目地址https://gitcode.com/gh_mirrors/fe/FerretDB点击查看免费下载FerretDB v1.16.0 是一个面向稳定与兼容性的里程碑版本它完成了DeleteAll在 capped collection固定大小集合上的支持为 proxy 模式补齐了 TLS 加密链路并正式迁移至 Docusaurus v3 文档体系。本文以官方 v1.16.0 发布说明为主线结合仓库源码与集成测试逐项拆解这些能力的实现方式与实战用法帮助你理解 FerretDB 迭代方向并将其应用到自己的 MongoDB 兼容工作负载中。FerretDB 是一款真正开源的文档数据库它提供 MongoDB 协议兼容层将 MongoDB 工作负载承载到 PostgreSQL、SQLite 等后端之上项目主页。v1.16.0 的核心工作集中在为未来后端铺路上一方面通过更完备的集成测试与更安全的查询下推pushdown控制让新增后端更容易对齐行为另一方面持续推进 capped collection 与代理模式等企业常用能力。同时官方博客与文档站完成了 Docusaurus v3 迁移。封面图沿用官方发布配图ferretdb-v1.16.0.jpg。配图本身为宣传性质仅作视觉标识。版本概览与迭代主线v1.16.0 的官方发布公告2023-12-05-new-ferretdb-release-v116.md概括了本次更新的三个重点文档与博客站点升级到 Docusaurus v3为内容站的长线演进奠定基础启用 capped collection 的DeleteAll支持补全固定大小集合的操作能力代理proxy模式支持 TLS使得开启 TLS 与认证的客户端/服务器之间可被安全观察。从整体策略看本次发布聚焦于改进 FerretDB 并搭建更多集成测试以便未来更容易支持其他后端同时移除不安全的查询下推以提升兼容性。这是一次典型的稳定性投资版本可见的 API 变化不多但为后续后端扩展扫清障碍。对不了解 FerretDB 的读者先交代背景FerretDB 的目标是让更多数据库后端能够承载 MongoDB 工作负载。因此每个版本都会在兼容性矩阵上新增验证点——这正是本次发布大量集成测试的动机所在。深入源码proxy 模式的 TLS 支持什么是 FerretDB 的 proxy 模式在 FerretDB 中proxy 模式提供一条旁路链路FerretDB 将客户端的 MongoDB 协议流量转发到另一台真正的 MongoDB 兼容服务端同时可以观察记录、度量两者之间的通信。这在调试、审计或做兼容性比对时非常有用。v1.16.0 之前的限制与本次改动在 v1.16.0 之前proxy 模式仅支持明文链路。一旦客户端与服务端之间开启了 TLS 和认证FerretDB 就无法介入观察。本次发布为 proxy 链路补齐了 TLS 能力使其能够解密并转发加密流量。从命令行入口看proxy 相关的 TLS 参数已加入参数表cmd/ferretdb/main.goProxy struct { Addr string default: help:Proxy address. TLSCertFile string default: help:Proxy TLS cert file path. TLSKeyFile string default: help:Proxy TLS key file path. TLSCaFile string default: help:Proxy TLS CA file path. } embed: prefix:proxy- group:Interfaces对应地proxy 的实现internal/handlers/proxy/conn.go在检测到任一 TLS 参数非空时会走dialTLS建立加密连接TLSCertFile/TLSKeyFile以tls.LoadX509KeyPair加载客户端证书与私钥用于双向认证场景TLSCaFile读取并解析 CA 证书用于校验服务端身份建立连接后显式执行HandshakeContext将握手纳入上下文可超时/取消。实战为 proxy 模式开启 TLS结合参数定义一条典型的启用命令形如./ferretdb \ --proxy-addr127.0.0.1:37017 \ --proxy-tls-cert-file/path/to/client.crt \ --proxy-tls-key-file/path/to/client.key \ --proxy-tls-ca-file/path/to/ca.crt需要注意的实践要点三个 TLS 参数同时为空时保持明文行为即向后兼容证书路径应为 PEM 格式并确保运行进程对证书文件具备读权限若服务端要求双向 TLSmTLS必须同时提供--proxy-tls-cert-file与--proxy-tls-key-file仅校验服务端证书时只需--proxy-tls-ca-file。源码印证capped collection 与 DeleteAll 支持capped collection 在 FerretDB 中的现状v1.16.0 明确说明作为 ongoing work to support capped collections 的一部分启用了DeleteAll支持。所谓DeleteAll即delete命令中不带查询条件{q: {}, limit: 0}的全量删除语义。从仓库测试看capped 标记在多个命令的返回结构中均被覆盖例如collStats的期望字段包含{capped, false}integration/commands_administration_test.go$collStats聚合输出同样校验该字段integration/aggregate_collstats_test.go。这说明 FerretDB 在持续跟踪capped属性在命令返回中的呈现方式。需要强调的是FerretDB 在 v1.16.0 时代仍处于逐步补全 capped 语义的过程中。DeleteAll支持仅意味着固定大小集合上的全量删除被处理不代表整个 capped collection 功能完全齐备。从源码结构看后续版本如 v1.17、v1.18 及 v2.x 系列仍在持续推进 capped 相关能力这正是版本发布说明中ongoing work的含义。对兼容性测试的启示本次发布把重心放在更多集成测试上。从 integration/ 目录的测试组织方式可以看出 FerretDB 的兼容性验证思路以setup.SetupWithOpts拉起测试实例注入shareddata提供的数据集integration/setup/setup.go使用mongo.CommandError断言错误码与错误信息如collStats的scale: 0会返回错误码51024见 integration/commands_administration_test.go通过AssertEqualDocuments对比字段级输出确保返回结构与 MongoDB 对齐。这意味着如果你要在 FerretDB 上验证 capped collection 行为最直接的方式是参考这些集成测试的写法在自己的项目里对create指定capped: true, size: ...、insert、deletelimit: 0全删做端到端回归。移除不安全下推兼容性优先的信号v1.16.0 还提到removing unsafe pushdowns。查询下推pushdown指 FerretDB 将部分 MongoDB 查询条件翻译成 SQL 下推到 PostgreSQL/SQLite 执行从而提升性能但下推逻辑若与 MongoDB 语义不完全等价就会造成行为差异。本次版本选择收紧下推边界凡是无法保证语义一致的下推一律移除宁可慢一点也要让行为与 MongoDB 对齐。这是 v1.16.0 整体为兼容性让路策略的典型体现。从实现角度看pushdown 相关的翻译逻辑集中在 handler 层移除工作伴随大量compat测试的回归验证参见 integration/ 下大量*_compat_test.go文件。对使用者来说这意味着如果你在 v1.16.0 观察到某些查询变慢了很可能不是性能回归而是下推被有意移除以保证正确性——这是本版本兼容性取舍的直接后果。文档站升级Docusaurus v3 迁移v1.16.0 的第三个可见变化是文档与博客站点完成 Docusaurus v3 迁移。官方说明提到我们做了一些文档和博客页面的调整以兼容 Docusaurus v3并已成功升级到新版本。从仓库现状看这一迁移的成果延续至今站点配置分散在 website/docusaurus.config.js、website/docusaurus.config-blog.js 与 website/sidebars.js 中多版本文档通过 website/versions.json 管理versioned_docs/目录保留了 v1.24、v2.5、v2.7 等历史快照博客内容以 Markdown/MDX 形式存放于 website/blog/按日期命名组织。对内容贡献者而言Docusaurus v3 的迁移意味着新增博客或文档页面遵循现有目录结构与 frontmatter 规范即可如 slug、title、authors、tags、description 字段无需关心旧版兼容性。2023 年度亮点回顾v1.16.0 发布于 2023 年 12 月初发布说明中一并回顾了 FerretDB 在 2023 年取得的里程碑4 月发布基于 PostgreSQL 的 v1.0 GA首个生产可用版本此后多家公司开始在生产环境采用 FerretDB全年在 SQLite 后端之外重构后端架构以提升性能并让新增数据库后端变得更加容易这也是 v1.16.0 大量集成测试的直接铺垫生态Scaleway、Civo、Vultr 等平台开始提供托管式 FerretDB 服务社区参与了 Civo Navigate 2023伦敦、Postgres Ibiza 2023、Percona University、ATO 2023 等活动并在 2023 Hacktoberfest 期间迎来大量新贡献者。这些内容均来自官方发布说明可作为了解 FerretDB 社区节奏的参考。总结与建议FerretDB v1.16.0 是一次为未来铺路的版本三个关键点分别对应不同读者群体变更价值建议验证路径capped collectionDeleteAll支持固定大小集合的全量删除可用参考 integration/commands_administration_test.go 中的测试模式做端到端验证proxy 模式 TLS可在加密链路上安全观察 MongoDB 通信使用--proxy-tls-*参数组合参照 cmd/ferretdb/main.go移除不安全下推行为更贴近 MongoDB 语义关注compat测试与查询结果比对Docusaurus v3 迁移文档站点技术栈现代化浏览 website/ 目录结构与 frontmatter 规范如果你正在评估或使用 FerretDBv1.16.0 的启示是FerretDB 把兼容性正确性放在性能激进优化之上任何后端扩展都伴随严格的集成测试。基于此生产环境升级前建议对照 integration/ 中的兼容测试矩阵做回归尤其是涉及 capped collection、删除语义与 TLS 加密链路的场景。赞分享后端数据库文档数据库【免费下载链接】FerretDBA truly Open Source MongoDB alternative项目地址https://gitcode.com/gh_mirrors/fe/FerretDB点击查看免费下载相关推荐FerretDB 0.7.1 发布解读TLS 加密连接支持与 listCollections 过滤能力FerretDB 0.7.1 发布解读TLS 加密连接支持与 listCollections 过滤能力 本文以 FerretDB 2022 年 12 月的 v后端数据库文档数据库Traefik v3 功能弃用解析Kubernetes v1beta1 API 支持的移除与迁移到 v1Traefik v3 功能弃用解析Kubernetes v1beta1 API 支持的移除与迁移到 v1 本文基于 Traefik 仓库中的官方功能弃用通告后端API网关负载均衡微服务网络云原生Phaser纹理内存优化白皮书3项核心技术降低50%内存占用的诊断与实施Phaser纹理内存优化白皮书3项核心技术降低50%内存占用的诊断与实施 Phaser是一款免费、快速且功能丰富的2D游戏框架专为在桌面和移动Web浏览器上游戏开发图形学前端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。