spring cloud gateway 入门

简介

    Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,取代Netflix Zuul网关。网关作为流量入口,在微服务系统中有着非常重要的作用,网关常见的功能有路由转发、权限校验、限流控制等。

    用户的请求首先经过gateway,根据路径由gateway的predict 去断言进到哪一个 router, router经过各种过滤器处理后,最后路由到具体的业务服务,如图:


核心处理流程

    Spring Cloud Gateway 的核心处理流程如下,Gateway的客户端回向Spring Cloud Gateway发起请求,请求首先会被HttpWebHandlerAdapter进行提取组装成网关的上下文,然后网关的上下文会传递到DispatcherHandler。DispatcherHandler是所有请求的分发处理器,DispatcherHandler主要负责分发请求对应的处理器,比如将请求分发到对应RoutePredicateHandlerMapping(路由断言处理器映射器)。路由断言处理映射器主要用于路由的查找,以及找到路由后返回对应的FilteringWebHandler。FilteringWebHandler主要负责组装Filter链表并调用Filter执行一系列Filter处理,然后把请求转到后端对应的代理服务处理,处理完毕后,将Response返回到Gateway客户端。

上代码

工程目录结构如下:

一、新建spring父项目

新建maven项目,pom文件如下:

  <groupId>org.springframework.boot

  <artifactId>spring-boot-starter-parent

  <version>2.2.2.RELEASE

  <relativePath/>

  <java.version>1.8

  <spring-cloud.version>Hoxton.RELEASE

        <groupId>org.springframework.cloud

        <artifactId>spring-cloud-dependencies

        <version>${spring-cloud.version}

        <type>pom

        <scope>import

</dependencyManagement>

二、添加eureka模块


三、添加两个server模块


四、添加gateway模块

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。