Subscribe to receive notifications of new posts:

Cloudflare 等候室

2021-01-22

9 min read
Cloudflare 等候室

今天,我们很高兴地宣布 Cloudflare 等候室上线!该服务将首先通过名为 Fair Shot 项目 的新计划提供给指定客户,旨在解决因 COVID-19 疫苗接种需求爆增而造成预约登记网站瘫痪的问题。该服务不久后还将在 Business 和 Enterprise 计划中全面推出。

等一下……等候室怎么会令人期待?

我们大多都很熟悉等候室这个概念,但一想到要待在等候室里,恐怕没有多少人会感到兴奋。通常,我们第一次体验等候室是在医生的办公室里——是的,您预约了,但有时医生会迟到(或其中一位患者迟到了)。鉴于医生一次只能给一个病人看诊……于是便有了等候室,这是一种让病人排队就诊的机制。

尽管服务器可以处理的并发请求比医生多,但它们也会不堪重负。在以前没有 COVID 的日子里,如果您尝试过购买流行音乐会或活动的门票,那么您很可能已经体验过在线等候室。它限制传入应用程序的请求数量,并将这些请求放入一个虚拟队列中。一旦进入应用程序的用户数量减少,就可以让新的用户进入,但数量限制在事先定义好的应用程序可以处理的阈值内。这样可以防止为应用程序提供支持的服务器被过多的请求淹没,同时还可以确保公平(从用户角度看)——系统过载时尝试访问资源的用户不会被有失公平地踢出队列,被迫重新连接,只能碰运气看能不能排上队。

为什么现在要推出这项服务?

既然我们当中没有多少人近期会去欣赏现场音乐会,为什么 Cloudflare 现在要推出这项服务?

好吧,也许我们不打算去听音乐会,但是 COVID-19 的连带影响已经催生了对等候室的巨大需求。首先,鉴于社交距离的要求以及许多营业场所停业和政府机构关门,客户和市民已经纷纷转入在线渠道,这让企业和政府基础结构承受了更大的压力。

其次,疫情及其连带后果意味着,一年前人们不需要的资源如今受到了世界各地许多人的依赖。具体而言,这些资源通常是与卫生或政府相关的资源,例如失业保险网站。现有的在线基础结构已准备好应对峰值负载,但并没有预见到 COVID-19 的影响。与疫苗相关的网站也出现了类似的情形。

需要设立等候室的组织曾经寥寥无几。大多数在线业务的本质决定了其涉及的用户负载通常更为一致,而不是大量人员一次性涌入。这些组织构建了专门的等候室,并深度集成到购票等应用程序中。利用 Cloudflare 的等候室,无需对应用程序代码进行任何更改,并且无需编写任何代码即可在几分钟内为任何网站建立一个等候室。

无论您是工程架构师还是业务运营分析师,设置等候室都很简单。我们可以快速轻松地做到这一点,确保您的应用程序可靠运行并免受意外流量激增的影响。其他我们认为重要的功能包括等候室自动启用以及人员动态流出。换句话说,当超过阈值时,等候室应自动开启;当用户完成应用程序中的任务时,应动态放掉一定数量的用户,并将已经在队列中的新用户放进来。这种方案的效果非常好。最后,我们看到 COVID-19 对用户和在线业务都造成了重大影响,尤其是卫生和政府部门。我们希望提供新的方式来确保这些应用程序继续正常运行,使所有用户都能获得所需的照顾,而不是一用浏览器就出错。

Cloudflare 等候室的工作原理是什么?我们基于边缘网络和 Workers 产品构建了等候室。我们充分利用 Workers 和全新的 Durable Objects 产品,得以消除客户编码需求,并提供可以“正常工作”的开箱即用的无缝产品。除此之外,我们发挥了 Workers 产品的规模和性能优势,确保我们的延迟开销极低,并使最终用户能够看到尽可能准确的预估时间,不会让任何用户增加不必要的排队时间。然而,在分散的网络中建立集中式系统绝非易事。当来自世界各地的请求进入应用程序时,我们需要获得视野广阔的精准视图,能够看到该负载传入和传出应用程序时的实际情况。

通过 Cloudflare 的请求(不设等候室)
通过 Cloudflare 的请求(不设等候室)

这些请求虽然速度很快,但仍要一段时间才能穿越地球。这样就产生了一个独特的边缘案例。如果一个网站来自北美洲和欧洲的访问量属于正常合理范围,但来自南美洲的访问量突然急剧增加,那么,我们怎么知道何时应该继续放用户进入应用程序、何时应该启用等候室以保护源服务器避免过载呢?

得益于一些智能化工程技术和我们的 Workers 产品,我们创建了一个系统,几乎可以立即与某个应用程序的全球需求保持同步,这使得我们获得了必要的洞见,知道何时应该让用户进入等候室排队、何时不应这样做。我们充分利用全球 Anycast 网络和 200 多个数据中心,消除了任何单点故障,既可以保护客户的基础结构,也让最终用户能够获得极佳体验——即使他们在高负荷情况下需要等待少量时间才能进入应用程序。

通过 Cloudflare 的请求(设有等候室)
通过 Cloudflare 的请求(设有等候室)

如何设置等候室

设置等候室无比简单,而且非常快捷!在最简单的情况下,用户只需要填写五个字段:1) 等候室的名称,2) 主机名(已经在其配置的区域中预先填充了主机名),3) 应用程序在任何既定时间里可拥有的活跃用户总数;4) 每分钟允许进入该应用程序的新用户数;5) 任何既定用户的会话持续时间。无需编码或对应用程序进行任何更改。

对于不希望添加额外品牌信息的客户,我们提供了使用默认等候室模板的选项。这简化了启动和运行等候室的过程。

大功告成!按一下保存,等候室就可以使用了!

对于有时间并且技术能力强的客户而言,他们也需要经历相同的过程,但我们为这些用户提供了完全的定制功能,以便他们可以为等候室添加品牌元素,确保该等候室与其整体产品的外观和风格相匹配。

最后,管理多个不同的等候室也十分轻松。查阅我们的“管理等候室”表格,哪些房间排队人多、哪些房间没人排队和/或已禁用,全都一目了然。

我们非常高兴能将功能强大的等候室交到客户手中,以确保他们继续专注于自身的业务和客户。请留意我们即将发布的另一篇博客文章,其中介绍了 Enterprise 版等候室产品的重大更新!

We protect entire corporate networks, help customers build Internet-scale applications efficiently, accelerate any website or Internet application, ward off DDoS attacks, keep hackers at bay, and can help you on your journey to Zero Trust.

Visit 1.1.1.1 from any device to get started with our free app that makes your Internet faster and safer.

To learn more about our mission to help build a better Internet, start here. If you're looking for a new career direction, check out our open positions.
简体中文Project Fair Shot (CN)Better Internet (CN)COVID-19 (CN)Load Balancing (CN)Product News (CN)Waiting Room (CN)

Follow on X

Cloudflare|@cloudflare

Related posts