微服务架构-路由网关spring cloud zuul

 <!--路由网关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,过滤逻辑
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值