Netflix API网关Zuul如何做到每秒处理两百万请求

2019 年 9 月 10 日

Netflix API网关Zuul如何做到每秒处理两百万请求

ArchSummit 北京 2018 大会上,Susheel Aroskar 讲师做了《Netflix API 网关 Zuul 如何做到每秒处理两百万请求》主题演讲,主要内容如下。

演讲简介

Zuul - Netflix API Gateway that handles 2M requests per second

How do we effectively route 2M requests per second to hundreds of backend services? How do we protect those backend services from constant DDoS attacks and retry storms? How do we keep Netflix humming along when an Amazon Web Services outage takes an entire AWS region out?

Meet Zuul - Netflix’s swiss army knife for application networking. Zuul is Netflix’s API gateway, load balancer, reverse proxy and more. It fronts all of the API traffic entering Netflix cloud and routes it to many backend services. It shields these backend services from retry storms, DDoS attacks and other outages shifting traffic across AWS regions, if necessary. It load balances millions of requests per second across thousands of machines, routing them intelligently and automatically around faulty instances.

In addition to this mission critical role in live production, Zuul is also invaluable during development and test to debug, canary and load test new features. Zuul lets us define new routing rules dynamically at run time that take effect near instantly without any deployments or restarts. This capability to slice, dice and change route for a portion of traffic quickly lets Zuul do all sort of tricks like canary / load testing, surgical traffic debugging for a single customer / device, black-holing malicious traffic etc.

At its heart, Zuul is a high performance, non blocking reverse proxy and layer 7 load balancer built on top of Netty. It supports multiple protocols including HTTP 1.0, HTTP 1.1, HTTP/2, WebSockets and Server Sent Events. It also offers flexible, configurable transport layer security including TLS, mTLS and application layer security like Netflix specific security protocols like MSL.

We will cover:

  • Zuul concept - where Zuul fits in overall Netflix architecture.
  • Zuul design - Architecture of Zuul and its fundamental components.
  • Zuul operation - How we operate 80+ Zuul clusters to proxy traffic to hundreds of backends
  • Zuul future - where are we going next with Zuul

参考译文

我们是如何有效的在每秒中向数百个后端服务发送请求的?我们又是如何保护这些后端服务免受持续的 DDoS 攻击和重试风暴?当 AWS 服务中断时,我们如何保持 Netflix 正常运作。

Zuul——被称为 Netflix 应用网络的瑞士军刀,它是 Netflix 的 API 网关,负载均衡器,反向代理等等。它掌控着 Netflix 云的所有 API 流量,并将这些流量分发到多个后端服务上。必要时,它可以保护这些后端服务免受重试风暴,DDoS 攻击以及其他服务中断在 AWS 区域之间转移流量带来的影响。它可以在数千台计算机上平衡每秒数百万个请求,并在故障实例周围智能的调度资源。

不仅在处理在线业务的过程中发挥关键作用,Zuul 在开发和测试过程中也非常有价值,可用于调试、测试、加载测试新功能。Zuul 支持在运行时动态定义新的分发规则,这些规则可以在无需任何部署或重新启动的情况下即时生效。这种切片,切块和更改部分流量分发的功能可以让 Zuul 执行各种任务,如为单个客户 / 设备、黑洞恶意流量做 Canary(金丝雀部署)/ 负载测试,以及外科式流量调试。

从本质上讲,Zuul 构建于 Netty 之上,是一个高性能,无阻塞的反向代理和 7 层负载均衡器。它支持多种协议,包括 HTTP 1.0,HTTP 1.1,HTTP / 2,WebSockets 和 Server Sent Events。还提供灵活可配置的传输层安全性,包括 TLS,mTLS 和应用层安全性,如 Netflix 特定的安全协议 MSL。

演讲提纲

  • Zuul 概念 - Zuul 适合整体 Netflix 的架构
  • Zuul 设计 - Zuul 架构及其基本组成部分
  • Zuul 运维 - 我们如何运维 80 多个 Zuul 集群来代理数百个后端的流量
  • Zuul 未来 - Zuul 的下一步打算

讲师介绍

Susheel Aroskar

Netflix Senior Software Engineer

Susheel works as a senior software engineer on the Cloud Gateway team at Netflix, which develops and operates Zuul - an API gateway that fronts all of the Netflix cloud traffic and handles more than 100 billion requests a day. Prior to Zuul, Susheel worked on Netflix CDN’s control plane in the cloud, which is responsible for steering more than a third of all North American peak evening internet traffic.

He joined Netflix just as Netflix was taking its first steps towards migrating from datacenter to cloud and he still has scars from those early days to prove it. He lives in California with his wife and daughter, both of whom find her dad jokes intolerable.

完整演讲 PPT 下载链接

https://archsummit.infoq.cn/2018/beijing/schedule

2019 年 9 月 10 日 14:01 750

评论

发布
暂无评论
发现更多内容

强烈安利第一个画图工具!

我是程序员小贱

高效工作 高效

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(三)

图雀社区

vue.js Vue Node

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(四)

图雀社区

Vue Node

MyBatis启动之XMLConfigBuilder解析配置文件(二)

ytao

后端 mybatis

hexo博客系统的实现原理与搭建

音视频专家-李超

Hexo 博客

centos6.9开机启动服务说明

唯爱

别做误人子弟的「职业导师」

Tony Wu

职业成长 导师 教练

源码分析 | 像盗墓一样分析Spring是怎么初始化xml并注册bean的

小傅哥

源码分析 小傅哥 spring源码 bean注入过程

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(六)

图雀社区

node.js Vue

csapp-chapter1

卓丁

深入理解计算机系统 csapp

如何让解决无法访问 GitHub 的问题?

JackTian

GitHub

ARTS-WEEK02

lee

深入理解JVM垃圾回收机制 - 何为垃圾?

NORTH

深入理解JVM 垃圾回收机制

大厂经验(1):一套Web自动曝光埋点技术方案

DeeperMan

大数据 数据采集

C++:两百字三段代码解决函数返回局部变量问题

韩小非

c++ 函数栈调用 返回局部变量

白天写代码,晚上摆地摊!9年前摆地摊学会了这些道理...

王磊

判例学习(一)梨视频诉字节跳动帮助侵权二审判决

尹晓铁

读书笔记 互联网 知识产权 法律 案例学习

程序员, 你会重装系统吗?

lmymirror

Windows 10 系统重装

TCP 半连接队列和全连接队列满了会发生什么?又该如何应对?

小林coding

Linux TCP 网络安全 计算机网络 网络协议

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(五)

图雀社区

Vue Node

csapp-chapter2

卓丁

深入理解计算机系统 csapp

深入理解Java虚拟机

NORTH

深入理解JVM

分布式架构,刚性事务-2PC必须注意的问题及3PC详细解

奈学教育

分布式架构 2PC注意事项 3PC详解

万字总结——反射(框架之魂)

学习Java的小姐姐

Java 反射 Java 25 周年

重磅推出:第14份年度敏捷状态报告(最新2020)

Bob Jiang

敏捷 调查报告 state of agile

【大厂面试03期】MySQL是怎么解决幻读问题的?

NotFound9

MySQL 数据库 编程 架构

Android工程架构演进及康威定律

石头

过滤器 和 拦截器 6个区别,别再傻傻分不清了

程序员内点事

Java

游戏夜读 | 网络游戏怎么赚钱?

game1night

为什么你成不了「超级个体」?

非著名程序员

程序员 互联网 提升认知 认知提升

机器学习算法评估指标——2D 目标跟踪

做技术BP的文案Gou

机器学习 2D 评估标准

Netflix API网关Zuul如何做到每秒处理两百万请求-InfoQ