zoukankan      html  css  js  c++  java
  • 微服务网关1-Spring Cloud Gateway简介

    一、网关基本概念

    1、API网关介绍

    ​ API 网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题:

    (1)客户端会多次请求不同的微服务,增加了客户端的复杂性。

    (2)存在跨域请求,在一定场景下处理相对复杂。

    (3)认证复杂,每个服务都需要独立认证。

    (4)难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合并成一个或者将一个服务拆分成多个。如果客户端直接与微服务通信,那么重构将会很难实施。

    以上这些问题可以借助 API 网关解决。API 网关是介于客户端和服务器端之间的中间层,所有的外部请求都会先经过 API 网关这一层。也就是说,API 的实现方面更多的考虑业务逻辑,而安全、性能、监控可以交由 API 网关来做,这样既提高业务灵活性又不缺安全性

    2、Spring Cloud Gateway

    ​ Spring cloud gateway是spring官方基于Spring 5.0和Spring Boot2.0等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供简单、有效和统一的API路由管理方式,Spring Cloud Gateway作为Spring Cloud生态系统中的网关,目标是替代Netflix Zuul,其不仅提供统一的路由方式,并且还基于Filer链的方式提供了网关基本的功能,例如:安全、监控/埋点、限流等。

    3、Spring Cloud Gateway 核心概念

    ​ 下面介绍一下Spring Cloud Gateway中几个重要的概念。

    (1)路由。路由是网关最基础的部分,路由信息有一个ID、一个目的URL、一组断言和一组Filter组成。如果断言路由为真,则说明请求的URL和配置匹配

    (2)断言。Java8中的断言函数。Spring Cloud Gateway中的断言函数允许开发者去定义匹配来自于http request中的任何信息,比如请求头和参数等。

    (3)过滤器。一个标准的Spring webFilter。Spring cloud gateway中的filter分为两种类型的Filter,分别是Gateway Filter和Global Filter。过滤器Filter将会对请求和响应进行修改处理。

    4、执行流程

    如下图所示,Spring cloud Gateway发出请求。然后再由Gateway Handler Mapping中找到与请求相匹配的路由,将其发送到Gateway web handler。Handler再通过指定的过滤器链将请求发送到我们实际的服务执行业务逻辑,然后返回。

    B0lcVJ.jpg

    5、特点

    优点:

    • 性能强劲:是第一代网关Zuul的1.6倍
    • 功能强大:内置了很多实用的功能,例如转发、监控、限流等
    • 设计优雅,容易扩展

    缺点:

    • 其实现依赖Netty与WebFlux,不是传统的Servlet编程模型,学习成本高
    • 不能将其部署在Tomcat、Jetty等Servlet容器里,只能打成jar包执行
    • 需要Spring Boot 2.0及以上的版本,才支持
  • 相关阅读:
    java线程池实践
    JAVA中间件(middleware)模式
    [开源]制作docker镜像不依赖linux和Docker环境
    利用浏览器favicon的缓存机制(F-Cache)生成客户端浏览器唯一指纹
    Docker镜像构建原理解析(不装docker也能构建镜像)
    ORM框架对分表分库之分库和分表指定不同的字段
    volatile的内存屏障的坑
    go和python的比较,获取当前时间是今年第几个星期
    c++学生管理系统
    c++学生管理系统(三)
  • 原文地址:https://www.cnblogs.com/smalldong/p/13911157.html
Copyright © 2011-2022 走看看