cloudflare使用rust语言改写原有的FL代码库,网络响应速度提升25%
本帖最后由 IT疯子 于 2025-9-28 09:24 编辑FL 建于 15 年以前,一直是 Cloudflare 网络的核心。它使我们能够提供广泛的功能,但随着时间的推移,这种灵活性成为一个挑战。随着我们添加更多产品,FL 变得越来越难以维护,处理请求的速度越来越慢,并且更难扩展。每个新功能都需要对现有逻辑进行仔细检查,并且每次添加都会引入更多的延迟,这使得维持我们想要的性能变得越来越困难。
一旦浏览器发出的请求到达 FL,将会在cloudflare网络中运行各种安全和性能功能。它应用每个客户的独特配置和设置,从强制执行 WAF 规则和 DDoS 保护到将流量路由到开发人员平台和 R2。
https://img.imgdd.com/c9bbbbcc-f491-4408-a83c-9aa50410eea0.webp
---
FL 是使用 NGINX、OpenResty 框架和 LuaJIT实现的。虽然这在很长一段时间内都很棒,但在过去的几年里,它开始显现出它的年龄。我们不得不花费越来越多的时间来修复或解决 LuaJIT 中晦涩难懂的错误。我们的 Lua 代码具有高度动态和非结构化的特性,这在最初尝试快速实现逻辑时是一件幸事,但在尝试集成大量复杂产品逻辑时却成为错误和延迟的根源。每次推出新产品时,我们都必须遍历所有其他现有产品,以检查它们是否可能受到新逻辑的影响。
很明显,我们需要重新思考。因此,在 2024 年 7 月,我们削减了对全新且完全不同的实施的初步承诺。为了节省商定新名称的时间,我们只是将其称为“FL2”,当然,并开始将原始 FL 称为“FL1”。
当我们着手构建 FL2 时,我们知道我们不仅仅是在更换旧系统;我们正在重建 Cloudflare 的基础。我们在 Oxy (cloudflare内部的网络代理框架)上用 Rust 构建了 FL2,并构建了一个严格的模块框架来构建 FL2 中的所有逻辑。我们测量了 FL2 在网络上推出时的影响。结果很明显:网站的响应速度在中位数上快了 10 毫秒,性能提高了 25%。
我们将在 2025 年剩余时间内完成从 FL1 到 FL2 的迁移,并将在 2026 年初关闭 FL1。我们已经看到了客户绩效和开发速度方面的好处,我们期待着将这些优势提供给所有客户。
来源:Cloudflare
页:
[1]