Spring Cloud第二代网关GateWay是由纯Netty开发,底层为Reactor,WebFlux构建,不依赖任何Servlet容器,它不同于Zuul,使用的是异步IO,性能较Zuul提升1.6倍。搭建过程如下(本次搭建的为子项目,主项目可以参考Nacos搭建流程 )

pom

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

配置文件

server:
port: 8040
spring:
application:
name: gateway
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
gateway:
discovery:
locator:
enabled: true

以上的意思不仅是把自己给注册到nacos,并且获取nacos的所有注册服务。

启动网关项目,现在就可以进行网络路由了。访问格式为 ip:端口/服务注册名/restfulapi-url

比方说我们现在有两个微服务项目,一个为user(端口8082),一个为nacos(端口8081).

三大核心概念

  • Route(路由) Spring Cloud Gateway的基础元素,可简单理解成一条转发的规则。包含:ID,目标的URL,Predicate集合以及Filter集合。
  • Predicate(谓词) 即java.util.function.Predicate,Spring Cloud Gateway使用Predicate实现路由的匹配条件。这是一个可以进行条件判断的函数式接口,具体可以参考本人博客Java函数式编程整理
  • Filter(过滤器) 修改请求以及响应。

由于我们使用了nacos来进行服务发现,所以我们使用了之前的配置文件,但如果不使用服务发现,只做常规的转发如下

spring:
cloud:
gateway:
routes:
- id: some_route
uri: http://www.baidu.com
predicates:
- Path=/user/1
filtes:
- AddRequestHeader=X-Request-Foo, Bar

这段配置的意思是说,当我们请求/user/1的url的时候,会添加AddRequestHeader=X-Request-Foo, Bar过滤器做一些处理,然后路由到http://www.baidu.com。

路由谓词配置工厂

路由谓词配置工厂由一整套谓词来进行配置转发的不同情况。

来源:http://www.1994july.club/seo/

第二代网关GateWay搭建流程的更多相关文章

  1. spring cloud网关gateway

    spring gateway使用基于netty异步io,第二代网关:zuul 1使用servlet 3,第一代网关,每个请求一个线程,同步Servlet,多线程阻塞模型.而spring貌似不想在支持z ...

  2. SpringCloud第二代实战系列:一文搞定Nacos实现服务注册与发现

    一.背景:SpringCloud 生态圈 在正式开始本篇文章之前我们先岔开来讲一下SpringCloud的生态圈. SpringCloud大家都比较熟悉了,它制定了分布式系统的标准规范,做了高度抽象和 ...

  3. SpringCloud+Eureka+Feign+Ribbon的简化搭建流程,加入熔断,网关和Redis缓存[2]

    目录 前提:本篇是基于 SpringCloud+Eureka+Feign+Ribbon的简化搭建流程和CRUD练习[1] 的修改与拓展 1.修改consumer的CenterFeign.java,把返 ...

  4. GPRS GPRS(General Packet Radio Service)是通用分组无线服务技术的简称,它是GSM移动电话用户可用的一种移动数据业务,属于第二代移动通信中的数据传输技术

    GPRS 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . GPRS(General Packet Radio Service)是通用分组无线服务技术的简称,它是GSM移动电话用户可 ...

  5. SpringCloudAlibaba-服务网关Gateway

    一:网关简介 在微服务架构中,一个系统会被拆分为很多个微服务.那么作为客户端要如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去调用.这样的话会产生很多问 ...

  6. 学习一下 SpringCloud (六)-- 注册中心与配置中心 Nacos、网关 Gateway

    (1) 相关博文地址: 学习一下 SpringCloud (一)-- 从单体架构到微服务架构.代码拆分(maven 聚合): https://www.cnblogs.com/l-y-h/p/14105 ...

  7. SSH(Struts2+Spring+Hibernate)框架搭建流程<注解的方式创建Bean>

    此篇讲的是MyEclipse9工具提供的支持搭建自加包有代码也是相同:用户登录与注册的例子,表字段只有name,password. SSH,xml方式搭建文章链接地址:http://www.cnblo ...

  8. soul开源网关项目搭建学习

    1. soul开源网关项目搭建学习 1.1. 地址 https://gitee.com/shuaiqiyu/soul 1.2. 介绍 官方介绍:这是一个异步的,高性能的,跨语言的,响应式的API网关. ...

  9. 联盟链初识以及Fabric环境搭建流程

    这篇文章首先简单介绍了联盟链是什么,再详细的介绍了Fabric环境搭建的整个流程. 区块链分类: 以参与方式分类,区块链可以分为:公有链.联盟链和私有链. 定义: 我们知道区块链就是一个分布式的,去中 ...

随机推荐

  1. 解决 .NET CORE3.0 MVC视图层不即时编译

    微软官方文档 Razor 编译 Razor SDK 默认启用 Razor 文件的生成时和发布时编译. 启用后,运行时编译将补充生成时编译,允许更新 Razor 文件(如果对其进行编辑). 运行时编译 ...

  2. Windows桌面图标不见了,可能是结束了explorer.exe进程导致

    Windows桌面图标不见了,怎么办?那么可能是你关掉了explorer.exe的进程. 解决办法: ① Ctrl+shift+delete打开任务管理器,查看进程是否有explorer.exe ② ...

  3. Ubuntu下运行python文件

    方法一: 直接> python2.7/python3.6 test.py 方法二: 在文件首行写上  #!/usr/bin/python3 这个是配置的路径 也可以通过 > which p ...

  4. Linux(CENTOS7) NodeJs安装

    1.下载NodeJs 官网下载地址:http://nodejs.cn/download/ ​ 2.上传到linux系统 我这里上传到/disk/nodejs目录下面的,上传工具使用的xftp. ​ 3 ...

  5. GitHub练习——如何将本地已有项目添加到github

    刚开始开始接触,搞点简单的,看看是怎么把项目传上去,总结一下,大概是这些步骤: 创建本地仓库 将本地仓库变成git可管理的仓库:git init 把项目文件添加到缓存区:项目文件添加到已有的仓库,然后 ...

  6. Q4:Median of Two Sorted Arrays

    4. Median of Two Sorted Arrays 官方的链接:4. Median of Two Sorted Arrays Description : There are two sort ...

  7. CTF -攻防世界-misc新手区

    此题flag题目已经告诉格式,答案很简单. 将附件下载后,将光盘挂到虚拟机启动 使用 strings linux|grep flag会找到一个O7avZhikgKgbF/flag.txt然后root下 ...

  8. grid布局——从入门到放弃

    基本知识 CSS grid 布局有两个核心组成部分:wrapper(网格容器,父元素)和items(网格项,子元素). 基本属性 属性 含义 display: grid 网格布局(父元素设置) gri ...

  9. 小程序转义字符去空格&nbsp;

    <text ].specInfo}}</text> 在微信小程序开发过程中,有时候会用到常用的一些特殊字符如:‘<’.‘>’.‘&’.‘空格’等,微信小程序同样支 ...

  10. 视图家族之mixins视图工具类与generics工具视图类

    视图家族之mixins视图工具类与generics工具视图类 一.mixins视图工具类 作用: 提供了几种后端视图(对数据资源进行曾删改查)处理流程的实现,如果需要编写的视图属于这五种,则视图可以通 ...