Zuul是什么?
Zuul相当于是第三方调用(app应用端和PC端)和服务提供方之间的防护门。作为前端服务(Edge Service也称边缘服务,前端服务的作用是对后端服务做必要的聚合和裁剪后暴露给外部不同的设备,如PC,Pad或者Phone),Zuul旨在实现动态路由,监控,弹性和安全性。它具备根据需求将请求路由到多个AWS自动弹性伸缩组的能力。
Zuul能给我们提供什么?
Netflix API流量的量级和多样性随时可能导致生产环境故障而没有预警。因此需要一个系统能使我们迅速改变策略行为,以便应对各种情况。 Zuul使用一些不同类型的过滤器,使我们能够快速灵活地将功能应用于我们的前端服务。这些过滤器具有以下功能:
权限控制和安全性--为每个请求提供身份认证,并拒绝不满足条件的请求。
预警和监控--跟踪前端有意义的请求和统计数据,以便我们准确了解生产环境运行状况。
动态路由--根据需求将请求动态地路由到不同的后端集群。
压力测试--逐渐增大到集群的流量,以便进行性能评估。
负载均衡--为每种类型的请求分配容量并丢弃超过限额的请求。
静态资源处理--直接在Zuul处理静态资源并响应,而并非转发这些请求到内部集群中。
多区域弹性--实现跨AWS区域请求路由,扩大了ELB的使用范围,并使前端服务更接近我们的成员。
Zuul组件
Zuul包含多个组件:
zuul-core--zuul核心库,包含编译和执行过滤器的核心功能。
zuul-simple-webapp--zuul Web应用程序示例,展示了如何使用zuul-core构建应用程序。
zuul-netflix--lib包,将其他NetflixOSS组件添加到Zuul中,例如使用功能区进去路由请求处理。
zuul-netflix-webapp--webapp,它将zuul-core和zuul-netflix封装成一个简易的webapp工程包。