当前位置: 首页 > news >正文

网站后台打打开空白不同网站建设特点

网站后台打打开空白,不同网站建设特点,建一个网站需要多长时间,wordpress 站长主题一、概述 Cloudflare 为何弃用 Nginx#xff0c;选择使用 Rust 重新构建新的代理 Pingora 框架。Cloudflare 成立于2010年#xff0c;是一家领先的云服务提供商#xff0c;专注于内容分发网络#xff08;CDN#xff09;和分布式域名解析。它提供一系列安全和性能优化服务…一、概述 Cloudflare 为何弃用 Nginx选择使用 Rust 重新构建新的代理 Pingora 框架。Cloudflare 成立于2010年是一家领先的云服务提供商专注于内容分发网络CDN和分布式域名解析。它提供一系列安全和性能优化服务包括防火墙、DDoS防护、SSL/TLS加密和威胁分析。 二、Pingora 介绍 Pingora 是一个基于 Rust 语言的框架用于构建快速、可靠且可编程的网络系统。日处理请求量超 1万亿次不仅在性能显著提升且仅需原代理基础设施三分之一的 CPU 和内存资源。 三、Nginx 在当今需求下遇到的瓶颈 随着 Cloudflare 规模的扩大已经超越了 Nginx 的处理能力了无法满足当下所需要的性能Nginx 也没有在非常复杂的环境中有所需要的功能。 虽然这些年来Cloudflare 有对 Nginx 的使用遇到了部分限制进行了优化但是仍然有一些限制则更难克服如下 首先在 Nginx 中每个请求只能由单个 worker 处理这样很容易导致所有 CPU 内核之间的负载不平衡从而导致速度变慢。由于这种请求进程锁定效应执行 CPU 繁重或阻止 IO 任务的请求可能会减慢其他请求的速度。 对于这些问题花了很多时间来解决但是对于 Cloudflare 规模的用例来说最关键的问题是糟糕的连接重用。机器与原始服务器建立 TCP 连接以代理 HTTP 请求连接重用通过重用之前从连接池建立的连接跳过新连接所需的 TCP 和 TLS 握手来加快请求的 TTFB。 但是Nginx 连接池与单个 worker 相对应当请求到达某个 worker 时它只能重用该 worker 内的连接。当添加更多 Nginx worker 以进行扩展时连接重用率会变得更差因为连接分散在所有进程的更多孤立的池中。这导致更慢的 TTFB 以及需要维护更多连接进而消耗更多的资源。 除上述Nginx 还面临有些类型的功能难以添加问题 Nginx 是一个非常好的 Web 服务器、负载均衡器或简单的网关。但对于 Cloudflare 的作用远不止于此。团队过去常常围绕 Nginx 构建自己需要的所有功能但要尽量避免与 Nginx 上游代码库有太多分歧不是一件很容易事情。 例如当重试请求/请求失败时将请求重定向到具有不同请求头的目标服务器但 Nginx 并不支持这种操作这要求人力投入额外的努力来克服其限制这种情况下还需要额外花费时间和精力来解决 Nginx 的限制。 其次Nginx 是用C语言编写的在设计上并非内存安全增加了出错的风险而且使用第三方代码库非常容易出错。 即使对于经验丰富的工程师来说也很容易陷入内存安全问题未来希望尽可能避免这些问题。 为了补充C语言选择使用了 Lua它相对安全但性能较低。 在处理复杂的 Lua 代码时经常怀念静态类型的便利而且 Nginx 社区的活跃度不高 开发过程往往较为封闭。 四、Pingora 项目设计决定 为了打造一个每秒提供数百万次请求且快速、高效和安全的代理必须首先做出一些重要的设计决 定。设计核心如下 选择 Rust 语言 因为它可以在不影响性能的情况下以内存安全的方式完成 C 语言可以做的事情。 自建 HTTP 库 选择自建的 HTTP 库而非现成的第三方库以提高处理HTTP流量的灵活性和自主创新的能力。 支持多样化、不符合 RFC 的HTTP流量 由于Cloudflare需要支持各种不符合RFC标准的HTTP流量Pingora设计为一个稳健、宽容、可定制的HTTP库以适应互联网各种风险环境和不规范的用例。 处理非标准的HTTP状态码 为了应对服务器支持使用599到999之间的状态代码Pingora实现了一个稳健的HTTP状态码处理系统以适应不同HTTP生态系统中的多样性。 多线程工作负载调度 Pingora选择了多线程而不是多进程以便轻松共享资源特别是连接池。采用Tokio异步运行时来避免性能问题并实施了工作窃取以提高效率。 基于请求生命周期的可编程接口 实施了类似于NGINX/OpenResty的基于“请求生命周期”事件的可编程接口。这使得开发人员能够通过编写代码在请求的不同阶段进行干预例如在请求标头接收时修改或拒绝请求从而清晰地分离业务逻辑和通用代理逻辑。 五、很完美Pingora 在生产中更快 Pingora 处理几乎所有需要与源服务器交互的 HTTP 请求例如缓存未命中在此过程中收集了很多性能数据。 首先看到 Pingora 如何加快客户的流量Pingora 上的总体流量显示TTFB 中位数减少了 5 毫秒第 95 个百分位数减少了 80 毫秒。这不是因为运行代码更快。甚至之前的旧服务也可以处理亚毫秒范围内的请求。 时间节省来自新架构它可以跨所有线程共享连接这意味着更好的连接重用率在 TCP 和 TLS 握手上花费的时间更少。 在所有客户中与旧服务相比Pingora 每秒的新连接数只有三分之一。对于一个主要客户它将连接重用率从 87.1% 提高到 99.92%这将新连接减少了 160 倍。更直观地说通过切换到 Pingora每天为客户和用户节省了 434 年的握手时间。 六、Pingora 功能亮点 异步 Rust 快速且可靠HTTP 1/2 端到端代理基于 OpenSSL 或 BoringSSL 的 TLSgRPC 和 websocket 代理优雅的重载可定制的负载平衡和故障转移策略支持多种观测工具 七、Pingora 生产环境后的反馈 更高效 在生产环境中与我们的旧服务相比Pingora 在相同流量负载的情况下消耗的 CPU 和内存减少了约 70% 和 67%。以及多线程模型还使得跨请求共享数据更加高效。 更安全 像我们这样的规模下快速安全的发布功能十分困难。很难预测在每秒处理数百万个请求的分布式环境中可能发生的每个边缘情况。Rust 的内存安全特性为我们提供了强大的保护让我们能够信赖服务的稳定运行。更能够专注于服务间的交互加速功能开发无需担忧内存安全问题。 即便出现崩溃Pingora 的稳定性也显著降低诊断难度。自推出以来尽管处理了海量请求但服务代码尚未导致任何崩溃显示出其卓越的可靠性。 所以Pingora 的崩溃极为罕见问题往往与内核或硬件故障无关。即便在极端调试困难的情况下软件也未导致过崩溃。 从中我们可以看到 Rust 逐渐进入生产环境中而且取得了很不错的效果也相信未来 AI 领域Rust 一定会带来很多资源节省、性能的提升及安全等。
http://www.zqtcl.cn/news/988649/

相关文章:

  • 做网站怎么租用服务器杭州网站建设hzyze
  • .asp 网站北京最新防疫信息
  • 网站上传用什么软件做视频教程114查询
  • 网站小图标素材网站开发需要提供哪些东西
  • 阿里巴巴国际站买家入口百度建网站多少钱
  • 为网站网站做代理怎么判wordpress 调用当前分类名称
  • 多用户网站管理系统定制网站建设与运营案例
  • 毕业设计做的网站抄袭网站开发执行文档
  • 自己做网站都要什么软件网址你懂我意思正能量不用下载
  • 网站内容的创新wordpress美食主题
  • 程序员做游戏还是做网站好雅安移动网站建设
  • wordpress伪静态大学seo诊断网站免费诊断平台
  • 企业网站模板下载软件商务网站规划与建设心得
  • 做网站的像素是多少钱郑州公司网页
  • 北京游戏网站建设特殊符号网站
  • c 网站开发技术代注册公司要多少钱
  • 设计师参考效果图网站如何写网站建设实验结果分析
  • 网站备案 营业执照做企业网站注意些啥
  • 网站建设公司济南网络教学平台昆明理工大学
  • 原网站开发新功能世赛网站开发
  • 做一款小程序需要多少钱凡科的网站做seo比较难
  • 北京网页设计与网站建设最专业的手机网站建设
  • 做一个网站广州网站备案拍照
  • 做平面图片的网站wordpress批量添加连接
  • 做ppt哪些网站的图片质量高做电商网站需要多少时间
  • 个人网站模板源码wordpress流动公告
  • html5 手机 网站盘锦建设工程信息网站
  • 高端企业网站定制公司wordpress喜欢_赏_分享
  • 网站开发推广方案策划书开发公司移交给物业资料说明
  • 做响应式网站的菜单中国造价网官网