引入
- 微服务架构中,客户端发起请求后会直接指向服务提供方,从而获得服务。
而诸多客户端会发起大量的请求,远大于微服务的数量。故而需要对客户端发起的请求进行一定的处理。 - Zuul 就是充当这样一个角色,作为所有客户端请求的入口,对客户端发起的请求进行处理。
- 同时,Zuul 会拉取 eureka 服务注册中心中注册的服务
- 至此,一方面 Zuul 是所有客户端请求的入口,另一方面又有所有微服务的目录。
- 那么 Zuul 的目标就是把合适的客户端请求转发到相应的微服务中
Zuul 的功能
- 身份认证:对客户端请求进行身份筛选,不同身份的请求发送至不同的微服务提供方或直接拒绝
- 动态路由:动态分配请求至后端微服务集群
- 负载均衡:为微服务提供合适数量的请求,以避免微服务提供方压力过大,影响其性能
- 静态响应处理:在边缘位置直接建立部分响应,避免其转发到微服务内部集群
- 压力测试:更改指向微服务集群的流量,测试其性能
- 等等…
Zuul 加入后的架构
- 架构图
- 由上图可知,Zuul 的作用即接收所有的客户端请求,并对其进行处理后转发到集群中相应的服务提供方