SpringCloud 系列之九:Spring Cloud Zuul实现路由,过滤,限流

本文介绍了Spring Cloud Zuul作为微服务网关的角色,包括防刷、限流、安全验证等功能。动态路由解决了传统互联网架构中手动维护nginx配置的问题,实现了服务实例的动态发现与负载均衡。过滤原理通过实现ZuulFilter进行请求验证,而限流则基于令牌桶算法控制流量。
摘要由CSDN通过智能技术生成

文章目录

Why?

Zuul作为SpringCloud全家桶微服网关,可以帮助我们实现防刷,限流,安全权限校验,过滤,路由等重要的功能。


What?

zuul具体可以帮助我们实现的功能以及如何实现的呢,现在我们就来分析一下

动态路由:

传统互联网架构:
在nginx中直接配置的是路由到的具体服务的地址,,当前端发送请求后,通过nginx直接路由到具体的服务实例上。

缺点:nginx中配置的服务实例是需要运维人员手动维护的,如果我们有成千上万个实例,这次我们把服务发布到了81,82,下次扩展了83,需要手动修改nginx配置,使得维护成本很大,很麻烦,具体解决办法,就是可以通过zuul动态路由来解决。

在这里插入图片描述
什么是动态路由?
首先画出动态路由的一个架构图:(手绘)
在这里插入图片描述
讲解一下:前端静态资源部署在nginx上,nginx上配置的后端路由是转发到具体的zuul所在的服务上的
Zuul单独启动一个服务,注册进eureka,并从Eureka集群根据服务名称获取已发布的微服务访问地址,根据配置的路由规则把请求代理到相应的微服务去,内嵌ribbon 做负载均衡访问具体的应用实例。
动态路由需要达到可持久化配置,动态刷新的效果,如果修改具体的服务实例,zuul会自动从eureka获取修改后的服务实例,这样我们就可以不用修改nginx了,减少了运维成本。

zuul:
	routes:
        myProduct:
        path: /myProduct/**
        serviceId: product
     ##禁用某些路由
    ignored-patterns:
      - /**/product/findList

过滤原理:
通过实现ZuulFilter,根据我们的请求路径进行过滤,token 验证,请求路径中有token信息的可以访问服务,否则无法访问服务

/**
 * TOKEN验证
 *
 * @author 李娜
 * @version 0.0.1
 * @since 0.0.1  2019-08-23
 */
@Component
public 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诗琪小姐姐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值