美文网首页微服务网关
第二章 zuul基本原理

第二章 zuul基本原理

作者: 原水寒 | 来源:发表于2017-04-29 16:44 被阅读979次

    一、zuul简介

    zuul使用一系列的filter实现以下功能

    • 动态路由 - 动态的将request路由到后端的服务上去
    • 权限校验
    • 监控 - 实时观察后端微服务的TPS、响应时间,失败数量等准确的信息
    • 日志 - 记录所有请求的访问日志数据,可以为日志分析和查询提供统一支持
    • 压力测试 - 逐渐的增加访问集群的压力,来测试集群的性能
    • 限流
    • 静态响应 - 直接在网关返回一些响应,而不是通过内部的服务返回响应

    github地址:https://github.com/Netflix/zuul/

    二、zuul filter

    2.1、关键元素

    Type:值可以是:pre、route、post、error、custom
    Execution Order: 指定一个type中的多个filter的执行顺序
    Criteria:满足该条件,filter执行
    Action: filter执行的动作的具体逻辑

    注意点:

    • filters之间不会直接进行通讯交流,他们通过一个RequestContext共享一个state;该RequestContext对于每一个request都是唯一的;
    • filter当前使用groovy来写的,也可以使用java
    • zuul可以动态的read, compile, and run these Filters,被更新后的filter会被从disk读取到内存,并动态编译到正在运行的server中,之后可以用于其后的每一个请求

    2.2、filter type

    1、PRE Filters执行时机: before routing to the origin.
    这类filter可能做的事:权限校验、选取路由机器、限流等。

    2、ROUTING Filters
    这类filter可能做的事:真正的向service的一台server(这台server是pre filter选出来的)发请求。

    3、POST Filters执行时机:after the request has been routed to the origin
    这类filter可能做的事:adding standard HTTP headers to the response,收集统计数据、streaming the response from the origin to the client

    4、ERROR Filters执行时机:其他三个阶段任一阶段发生错误时执行

    5、CUSTOM Filters沿着默认的filter流,zuul允许我们创建一些自定义的Filter type,并且准确的执行他们。
    例如:我们自定义一个STATIC type的filter,用于从zuul直接产生响应,而不是从后端服务获取。

    三、zuul request lifecycle(filter流)

    <div>



    </div>
    说明:对应(二)的filter type来看

    四、zuul核心架构

    相关文章

      网友评论

        本文标题:第二章 zuul基本原理

        本文链接:https://www.haomeiwen.com/subject/slwzzttx.html