首页>科技 >内容

Netflix开源用来服务1.25亿会员的云端闸道器Zuul 2

科技2021-02-28 22:05:30
最佳答案

Netflix宣布开源其云端闸道器Zuul 2,Netflix称它为前门,所有流量请求必会经过该服务。Zuul 2作为Netflix最重要的基础建设之一,现在Netflix内部运行超过80个Zuul 2丛集,向后端百项服务每秒发送一百万次的请求,以服务1.25亿会员的需求。

Zuul 2中,过滤器的前端与后端都设置了Netty处理程序,用来负责处理网路协定、网页伺服器、连接管理以及代理工作。Netflix提到,Zuul的功能相当于在过滤器设置的逻辑。Netflix将Zuul 2不只使用在所有外部流量进入Netflix云端服务的入口,而同时也用于路由内部流量。

负责处理入站流量的过滤器用于验证、路由以及修饰请求。而端点过滤器用于回传静态回应以及代理后端服务的请求。而出站流量的过滤器则用于压缩、指标或是新增删除自订义标头等内容。

目前Zuul 2开源的核心功能包括HTTP/2与TLS伺服器协定。在灵活性功能方面,适应性重试功能(Adaptive Retries),是Netflix用来增加服务可用性以及灵活性的核心重试逻辑。后端服务并行保护功能,则可用来配置并行限制以避免后端服务过载。

另外,在运作的功能上,除了提供Request Passport以追蹤每一个请求的生命週期事件外,状态类别(Status Categories)可以列举请求的所有可能成功或失败的状态,而Request Attempts用于追蹤代理状态,这个功能对于除错重试以及路由特别有用。

还有一些功能这次未来得及开源,但将依计画不久后释出,其中包括Websocket/SSE,以及流量控管功能,防止来自恶意客户端的DDoS攻击,而Brownout filters则能禁用特定CPU资源密集的应用,以防止Zuul过载。最后,可配置路由提供使用者以档案设定路由规则。

有几项Zuul 2功能尚未开源,但是在Netflix内部服务是很重要的应用,供欲使用Zuul 2的企业参考。Netflix提到,合作伙伴最常使用的功能就是自助路由(Self Service Routing),他们为用户提供应用程式与API,根据请求的URL、路径、查询参数或是标头等资讯创建路由规则,并将这些规则发布到各Zuul实体中。

另一个重要的功能便是灵活的负载平衡,Netflix致力于使负载平衡智慧化,当数量庞大的节点中,出现故障或是缓慢的节点,他们的演算法会自动绕过这些问题,维持服务的可用性以及品质。

由于Netflix的弹性架构,允许任何人都可以启动容器丛集并置于Zuul之后,因此Netflix发现,他们需要一个自动检测并查明后端错误的服务。透过Mantis即时事件串流,他们建立了异常状态侦测,以汇总每项服务的错误率,并在服务出现问题时主动发出通知。

免责声明:本文由用户上传,如有侵权请联系删除!