概述
<!--路由网关spring cloud zuul微服务系统安全组件,用于构建边界服务,致力于动态路由,过滤,监控,弹性伸缩和安全。
为什么需要Zuul
1.zuul,ribbon,eureka结合实现智能路由均衡负载等功能,zuul呢能够将请求流量按某种策略分发到集群状态的多个服务实例
2.网关将所有服务的API接口统一聚合,并统一对外暴露,这样,外界不需要知道微服务系统的复杂性,同时也保护了内部的微服务单元的API接口,防止被外界直接调用
3.网关服务可以做用户身份认证和权限认证
4.可以实现监控功能,日志打印,对请求进行记录
5.可以实现流量监控,高流量下对服务进行降级
6.api接口从内部服务分离开来,方便测试
-->
<!--Zuul工作原理
Zuul通过Servlet来实现,Zuul通过自定义的ZuulServlet来对请求进行控制。Zuul的核心是一系列的过滤器,可以在http请求的发起和响应返回期间执行一系列的过滤器
过滤器分为四种
PRE过滤器
ROUTING过滤器
POST过滤器
ERROR过滤器
他们之间不能通信,但是每个请求都会创建requestContext对象
当一个request请求进去到zuul网管服务时,先进入pre filter进行一系列的验证操作或是判断,然后进入routing filter进行路由转发,转发到具体的服务实例进行逻辑处理,
返回数据。当具体服务处理完时,再交给post filter处理,处理完就返回Response
ZuulServlet是Zuul的核心servlet。ZuulServlet的作用是初始化ZuulFilter,并编排这些ZuulFilter的执行顺序
Zuul过滤器关键特性:
1.类型:不同类型在不同阶段起作用
2.执行顺序: pre ->routing->post
3.标准:执行Filter的条件
4.行为:符合执行条件之后的逻辑
-->
使用
/**
* 1.添加依赖spring-cloud-starter-zuul
*
* 2.注解@EnableZuulProxy
*
*3.配置
* zuul:
* routes:
* hiapi:
* path: /hiapi/**
* url: http://localhost:8764
* ribbonapi:
* path: /ribbonapi/**
* serviceId: eureka-ribbon-client #serviceId做均衡负载 url直接指定服务不做均衡负载只是zuul有效,如果服务做了均衡负载,同时也会做均衡负载
* feignapi:
* path: /feignapi/**
* serviceId: eureka-feign-client
* prefix: /v1 #所有请求路径前加版本号v1 添加版本号
*
*4.配置熔断器
* 实现ZuulFallbackProvider接口 ,并注入到ioc中
* getRoute 指定熔断器是哪个服务
* fallbackResponse 熔断器开启之后的逻辑处理
*
*5.使用过滤器
* 自定义类 extends ZuulFilter,实现他的抽象方法,并注入到ioc中去
* filterType过滤器类型 PRE过滤器 ROUTING过滤器 POST过滤器 ERROR过滤器
* filterOrder 过滤器执行顺序 int型,值越小,越先执行
*shouldFilter,是否执行过滤逻辑run(),为true执行
* run,过滤逻辑
*/
最后
以上就是负责便当为你收集整理的微服务架构-路由网关spring cloud zuul的全部内容,希望文章能够帮你解决微服务架构-路由网关spring cloud zuul所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复