SpringCloud Gateway 是SpringCloud 生态系中的网关,不仅提供统一路由功能,通过 Filter 过滤链实现网关的基本功能,比如用户验证,鉴权,限流等功能。它使用非阻塞模式,性能优于 Netflix Zuul,并且支持长连接。

SpringCloud Gateway 的核心组件就是断言和过滤器。

SpringCloud Gateway 路由功能,使用断言进行请求和路由的匹配,匹配上的请求被发送到对应的网关 web 处理器进行处理,处理器处理时经过一系列过滤器。

下面是Gateway的基本使用。

在之前Consul 主项目中添加 gateway模块,实现服务网关功能。

1、maven依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

2、配置文件

server:port: 8801
spring:application:name: gatewaycloud:consul:host: localhostport: 8500discovery:service-name: gatewaygateway:discovery:locator:enabled: falselower-case-service-id: true #将请求路径的服务名为小写routes:- id: logserviceuri: lb://logservicepredicates:- Path=/log/**filters:- StripPrefix=1- id: orderserviceuri: lb://orderservicepredicates:- Path=/order/**filters:- StripPrefix=1# 配置日志
logging:level:org.springframework.cloud.gateway: debug

routes节点下可以设置多个路由,每个路由由唯一id,匹配对应的服务,

在predicates节点下配置断言, Gateway 内置了多种断言,常用的有 Path, 路径路由断言,上面uri里的lb意思是从注册中心获取服务,使用load balance 负载均衡,也可以为具体的网址,比如 http://localhost:8801/log。

Method 方法路由断言,只允许指定的请求方法类型通过。其他还包括Header,Cookie, Host,QueryParam,RemoteAddr, DateTime。

上面配置中的StripPrefix 用于路径截取,数字代表截取的路径的个数,比如当StripPrefix=1的时候,http://localhost:8801/log/log 对应为 http://localhost:8801/log。

如果请求出现404错误,需要检查路由匹配设置是否正确。

3、启动类上添加注解

@EnableDiscoveryClient

4、从网关访问日志服务和订单服务

http://localhost:8801/log/log

http://localhost:8801/order/order

SpringCloud Gateway 服务网关,断言相关推荐

  1. SpringCloud - GateWay服务网关

    文章目录 一. Gateway概述 1.Gateway是什么 2. Gateway作用 3. 微服务架构中网关的位置 4. SpringCloud Gateway概念 5. SpringCloud G ...

  2. SpringCloud Gateway 服务网关,限流

    SpringCloud Gateway 提供了基于Redis 和lua脚本实现的令牌桶算法进行限流,即 RequestRateLimiterGatewayFilterFactory类,通过设置过滤器实 ...

  3. SpringCloud Gateway 服务网关,过滤器

    SpringCloud Gateway 过滤器有 pre 和 post 两种方式,请求首先经过 pre 过滤器处理,成功后被转发到对应的服务,然后经过 post 过滤器处理,将结果返回客户端.这种机制 ...

  4. SpringCloud 微服务网关Gateway 动态路由配置

    概述:在上一章节<SpringCloud 微服务网关Gateway介绍及简单路由配置>中我们讲述了Gateway的最简单的路由配置方式.但是其中比较明显的问题就是我们在配置路由服务的地址时 ...

  5. SpringCloud 微服务网关Gateway介绍及简单路由配置

    概述:什么是微服务网关?为了解决用户客户端在调用微服务系统中的多个消费者工程接口时,需要维护非常多的消费者应用接口地址等信息,以及可能存在不同应用见的调用跨域等问题,微服务网关组件随即出现.网关作为用 ...

  6. 【Spring Cloud Alibaba】Gateway 服务网关

    [Spring Cloud Alibaba]Gateway 服务网关 1 架构图 2 Predicate 断言 3 路由 3.1 静态路由 3.2 动态路由 3.3 Nacos 配置 4 过滤器 4. ...

  7. 微服务01SpringCloud Eureka Ribbon Nacos Feign Gateway服务网关

    微服务技术栈导学 SpringCloud01 1.认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构.这些架构之间有怎样的差别呢? 1.0.学 ...

  8. Spring cloud Gateway 服务网关 实战

    Spring cloud Gateway 服务网关 一.简介 优点: 特性: 总结: 二.核心概念 三.路由规则 1.Path 2.Query 3.Method 4.Datetime 5.Romote ...

  9. 微服务笔记:第一章_微服务简介|Eureka注册中心|Nacos注册中心|Nacos配置管理|Feign|Gateway服务网关

    微服务笔记:第一章_微服务简介|Eureka注册中心|Nacos注册中心|Nacos配置管理|Feign|Gateway服务网关 1. 微服务简介 1.1 服务架构演变 1.2 SpringCloud ...

最新文章

  1. 得到的旋转向量和平移向量转换成旋转矩阵 (SE(3))
  2. ASP.NET中MVC编程模式简介与搭建HelloWorld项目
  3. 第十七章 特殊成员_类的函数指针
  4. 『ACM-算法-二分法』算法竞赛进阶指南--在单调递增序列a中查找大于等于X的数中最小的一个,即X或X的后继
  5. gpedit msc组策略面板 win10在哪里_windows10的组策略在哪
  6. 套接字设置为(非)阻塞模式
  7. 【 FZU - 2214 】Knapsack problem(逆向0-1背包)
  8. 常用函数的连续傅里叶变换对
  9. StackExchange.Redis 使用LuaScript脚本模糊查询hash
  10. V4L2 获取设备支持的分辨率
  11. 亲测VS2010纯静态编译QT4.8.2,实现VS2010编译调试Qt程序
  12. Springboot+Thymeleaf《药品管理系统》
  13. HTTP报文结构详解
  14. 地面监视雷达系统的设计与试验
  15. iOS两个强制旋转屏幕的方法
  16. Git: The following paths are ignored by one of your .gitignore files: xxx.dll
  17. SpringBoot系列之(一):入门
  18. Ipad2022可以用电容笔吗?双十一值得入手电容笔推荐
  19. 末学者笔记--apache编译安装及LAMP架构上线
  20. 推荐|脚本2分钟实现电话短信报警

热门文章

  1. textaligncenter仍然不居中_三星Galaxy S21/S21+保护膜曝光:居中挖孔 回归直屏_手机行情...
  2. linux I/O-记录锁(record lock)
  3. MySQL将一张表数据插入到另一张表
  4. 计算机会计学实验报告,最新计算机会计学实验报告-10本.doc
  5. 履带机器人动力总成_工业机器人在动力总成工厂智能化提升中的应用
  6. LeetCode - Easy - Excel Sheet Column Title
  7. OEL6.1下oracle 11gr2 ASM安装
  8. Ruby1.9.3 Rails 3.2.3安装
  9. mysql用一条sql语句删除重复记录_mysql中删除重复记录,并保留重复数据中的一条数据的SQL语句...
  10. mysql连接查询(内联)_MySQL之连接查询