zoukankan      html  css  js  c++  java
  • 对微服务API服务网关的理解

    目录
    微服务专栏地址
    目录
    1. 简介
    2. 什么是API网关
    3. 为什么需要API网关
    4. API网关在微服务架构体系中处于什么位置
    4.1 调用者眼中的API网关
    4.2 所处的位置
    5. 网关技术实现有哪些
    6. zuul网关工作原理是什么样的
    6.1 整体处理流程图
    6.2 请求生命周期
    7. 技术上如何选型
    1. 简介
    通过以下几个问题去理解微服务中的一个重要组件:API网关。

    什么是API网关
    为什么需要API网关
    API网关在微服务架构体系中处于什么位置
    网关技术实现有哪些
    zuul网关工作原理是什么样的
    技术上如何选型
    2. 什么是API网关
    API网是一个反向路由:屏蔽内部细节,为调用者提供统一入口,接收所有调用者请求,通过路由机制转发到服务实例。
    API网关是一组“过滤器”集合:可以实现一系列与核心业务无关的横切面功能,如安全认证、限流熔断、日志监控。
    3. 为什么需要API网关
      什么是API网关中已给出理由,简单总结:

    屏蔽内部细节
    反向路由
    安全认证
    限流熔断
    日志监控
    4. API网关在微服务架构体系中处于什么位置
    4.1 调用者眼中的API网关


    统一入口
    内部服务对于调用者是透明的
    4.2 所处的位置


    处于负载均衡与业务服务之间
    API网关也可实现负载均衡功能
    5. 网关技术实现有哪些
    简单列举,不做比较,有兴趣可查询资料,后续为基于zuul网关来理解工作流程原理
    1
    zuul:是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用。Spring Cloud已集成
    kong:是一款基于Nginx_Lua模块写的高可用,易扩展由Mashape公司开源的API Gateway项目
    6. zuul网关工作原理是什么样的
    因为后续API网关组件会聚焦于zuul,这里对zuul工作原理提前学习。
    1
    6.1 整体处理流程图


    zuul本身是一个Servlet
    HttpServlet Request请求到达Zuul Servlet
    通过ZuulFilter Runner ,并且根据routing filter 类型执行filter 链
    根据FilterType类型不同,执行的顺序不同且可完成不同的功能
    pre:在请求被路由之前调用,可实现日志监控、身份认证、黑名单等功能
    route:在路由请求时候被调用
    post:在route和error过滤器之后被调用,可实现审计、统计等功能
    error:处理请求时发生错误时被调用、可实现统一异常处理等功能
    Request Context:在请求生命周期中共享变量
    Filter的实现是可插拔的
    脚本实现Filter
    发布到filter目录中
    由filter manager与filter loader自动加载
    6.2 请求生命周期


    拦截请求
    根据filter类型,执行已加载的filter chain
    返回请求
    7. 技术上如何选型
    若使用的微服务框架是Spring Cloud,可选择Netflix的zuul,已经很好的集成到SC中
    kong ,当然,能力强的可以自定义实现满足自己需求的API网关
    ---------------------
    作者:AlienStar
    来源:CSDN
    原文:https://blog.csdn.net/crave_shy/article/details/81221738
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    webstrom 内存溢出,软件崩溃卡死解决的方法
    JAVA 基础 / 第八课:面向对象 / JAVA类的方法与实例方法
    JAVA 基础 /第七课: 面向对象 / JAVA类的属性,类变量与实例变量
    JAVA 基础 /第六课: 面向对象 / JAVA中的类和对象
    JAVA 基础 /第五课:ECLIPSE常见的使用技巧以及部分快捷键
    JAVA 基础 / 第四课:在ECLIPSE中运行第一个 JAVA 程序以及找不到类的问题
    JAVA 基础 /第三课:下载 ECLIPSE并使用ECIPSE创建第一个 JAVA PROJECT
    JAVA 基础 / 第二课:用命令行中编写第一个 JAVA 程序
    JAVA 基础 / 第一课:手把手教你做JDK环境变量配置
    Java swing中的keyListener使用事例
  • 原文地址:https://www.cnblogs.com/panchanggui/p/10369527.html
Copyright © 2011-2022 走看看