SpringCloud之Zuul网关
2019-05-01 00:02
239 查看
API网关的作用
路由、监控、负载均衡、权限控制、请求限制等
什么是Zuul
Zuul是从设备和网站到Netflix流应用程序后端的所有请求的前门。作为边缘服务应用程序,Zuul旨在实现动态路由,监控,弹性和安全性。它还能够根据需要将请求路由到多个Amazon Auto Scaling组。
Nginx与Zuul的区别
开发语言:nginx是使用c语言编写;zuul是java写的
负载均衡的实现:zuul使用ribbon;nginx采用服务端实现
nginx能整合一些脚本语言适合做服务端负载均衡;zuul里可以使用过滤器(黑白名单)、权限控制、请求限制、判断token是否有效等,虽然nginx也能实现但比较麻烦
Zuul 实现API网关 会话验证判断token是否有效
@Component public class TokenFilter extends ZuulFilter{ /** * 是否执行该过滤器。 */ @Override public boolean shouldFilter() { return false; } /** * 过滤器的具体逻辑。 */ @Override public Object run() throws ZuulException { RequestContext currentContext = RequestContext.getCurrentContext(); HttpServletRequest request = currentContext.getRequest(); String userToken = request.getParameter("userToken"); if (StringUtils.isEmpty(userToken)) { currentContext.setSendZuulResponse(false); currentContext.setResponseStatusCode(401); currentContext.setResponseBody("userToken is null"); return null; } // 否则正常执行业务逻辑..... return null; } /** * 前置过滤器。在 zuul 中定义了四种不同生命周期的过滤器类型: * 1、pre:可以在请求被路由之前调用; * 2、route:在路由请求时候被调用; * 3、post:在route和error过滤器之后被调用; * 4、error:处理请求时发生错误时被调用; */ @Override public String filterType() { return "pre"; } /** * 过滤的优先级,数字越大,优先级越低。 */ @Override public int filterOrder() { return 0; } }
相关文章推荐
- 记录关于springCloud 网关从zuul升级到gateway所遇到的问题
- SpringCloud-网关gateway-zuul
- Spring cloud 网关zuul配置
- spring cloud 学习(6) - zuul 微服务网关
- 第二十三章 使用Spring cloud+zuul使用API网关进行上传文件
- spring cloud网关zuul源码之Filter管理
- springcloud(十):服务网关zuul初级篇
- spring cloud 系列第6篇 —— zuul 服务网关 (F版本)
- Spring cloud 网关zuul配置
- SpringCloud的服务网关zuul
- spring cloud Zuul(API网关服务)
- 白话SpringCloud | 第十章:路由网关(Zuul)进阶:过滤器、异常处理
- SpringCloud微服务知识整理七:API网关服务:Spring Cloud Zuul
- Spring Cloud Zuul--服务网关
- spring cloud网关zuul之filter注册
- 微服务网关哪家强?一文看懂Zuul, Nginx, Spring Cloud, Linkerd性能差异
- Spring Cloud(六)服务网关 zuul 快速入门
- springcloud 入门 7 (zuul路由网关)
- Spring Cloud(Dalston.SR5)--Zuul 网关-过滤器
- Spring cloud 网关zuul配置