本节案例承接上节

1. 为什么需要网关


1.1 为什么需要网关

没有网关,我们的微服务消费端,全都要对外网进行暴露。每个微服务消费端,都要进行自己的安全过滤,身份验证,这无疑增加了开发工作量。另外一个原因,如果有安全规则问题,需要更新维护,那么,所有的服务消费端都要更新一遍。

所以,我们需要对请求进行统一的收口,统一的过滤,这是网关最重要的作用。其次,配合服务注册与发现,网关对请求代理后,还可以把请求分发到运转正常的服务消费端,分发的同时也实现了负载均衡,这是网关的另一个重要作用。

网关功能:

  • 身份认证和权限校验
  • 服务路由、负载均衡
  • 请求限流


1.2 网关的技术实现


2. Gateway快速入门

搭建网关服务的步骤:

  1. 创建新的module,引入SpringCloudGateway的依赖和nacos的服务发现依赖。创建启动类。
  2. 编写路由配置及nacos地址

2.1 创建新的module,引入SpringCloudGateway的依赖和nacos的服务发现依赖

创建新的module:
引入SpringCloudGateway的依赖和nacos的服务发现依赖:

    <dependencies><!--nacos服务注册发现依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!--网关gateway依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency></dependencies>

创建启动类:

package cn.itcast.gateway;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class GatewayApplication {public static void main(String[] args) {SpringApplication.run(GatewayApplication.class, args);}
}

2.2 编写路由配置及nacos地址

lb是Load Balance的缩写,意思就是负载均衡。

server:port: 10010
logging:level:cn.itcast: debugpattern:dateformat: MM-dd HH:mm:ss:SSS
spring:application:name: gatewaycloud:nacos:server-addr: localhost:8848 # nacos地址gateway:routes:- id: my-gateway # 路由标示,必须唯一uri: lb://user-service # 路由的目标地址predicates: # 路由断言,判断请求是否符合规则- Path=/user/** # 路径断言,判断路径是否是以/user开头,如果是则符合- id: order-serviceuri: lb://order-servicepredicates:- Path=/order/**

启动项目进行测试:

可以发现现在可以成功的拿到数据,测试成功。



2.3 gateway流程


2.4 小结


3. 路由断言工厂(Route Predicate Factory)


3.1 介绍



Spring提供了11种基本的Predicate工厂:

spring路由工厂官网

这里详细说明了11种基本的Predicate工厂的功能和用法:


3.2 示例

- After=2017-01-20T17:42:47.789-07:00[America/Denver]
这就表示在 美国 丹佛时间 2030年1月20号 17:42:47 之后的请求才会生效。如果是这个时间之间的请求就会404 not found。


3.3 小结



SpringCloud 统一网关Gateway -- 为什么需要网关、Gateway快速入门、路由断言工厂(Route Predicate Factory)相关推荐

  1. Spring Cloud Gateway 路由转发之After(Before)路由断言工厂使用

    前言 本文旨在介绍After(Before)路由断言工厂使用,以此类推可以使用其他路由断言工厂 案例 1.概念 网关简单的说就是提供一个对外统一的API入口和出口,统管企业对外的所有API出口.一般来 ...

  2. Spring Cloud Gateway之路由断言工厂篇

    1. 背景 最近,需要提升系统安全性,市面上有很多款网关服务的技术方案,最终选择了Spring Cloud Gateway. 2. Spring Cloud Gateway工作机制 官网配图: 客户端 ...

  3. Gateway网关-路由断言工厂

    断言工厂 我们在配置文件中写的断言规则只是字符串,这些字符串会被Predicate Factory读取并处理,转变为路由判断的条件 例如Path=/user/**是按照路径匹配,这个规则是由 org. ...

  4. SpringCloud Gateway架构流程 和 内置的路由断言介绍

    讲解SpringCloud Gateway架构流程 路由:是网关的基本单元,由ID.URI.一组Predicate.一组Filter组成,根据Predicate进行匹配转发 route组成部分 id: ...

  5. Spring Cloud Gateway路由断言实战——RemoteAddr路由断言工厂

    一 源码位置 https://github.com/cakin24/spring-cloud-code/tree/master/ch17-2/ch17-2-9-gateway 二 关键代码 packa ...

  6. Gateway - Path、Query、RemoteAddr路由断言工厂

    一.PathRoutePredicateFactory 匹配请求路径. 源码解析 用法 二.QueryRoutePredicateFactory 匹配请求的查询参数. 源码 用法 三.RemoteAd ...

  7. SpringCloud 组件Gateway服务网关【断言工厂过滤器工厂】

    目录 1:断言工厂 2:过滤器工厂 2.1:路由过滤器的种类 2.2:请求头过滤器 2.3:默认过滤器 2.4:总结 1:断言工厂 路由断言工厂Route Predicate Factory 路由配置 ...

  8. SpringCloud Gateway微服务网关实战与源码分析-上

    概述 定义 Spring Cloud Gateway 官网地址 https://spring.io/projects/spring-cloud-gateway/ 最新版本3.1.3 Spring Cl ...

  9. SpringCloud Alibaba 微服务 — 微服务网关 Gateway

    一.Spring Cloud Gateway 简介 Spring Cloud Gateway 是 Spring 官方基于 Spring 5.x.Spring Boot 2.x.Spring WebFl ...

  10. SpringCloud——Gateway(介绍、快速入门、网关集群)

    介绍 网关是微服务最边缘的服务,直接暴露给用户,用来做用户和微服务的桥梁. Gateway是Spring官方提供的用来代替zuul的网关组件 核心逻辑:路由转发 + 执行过滤器链 三大核心概念 Rou ...

最新文章

  1. jdk动态代理和cglib动态代理的区别
  2. dig挖出DNS的秘密
  3. mysql数据库优化的几种方法
  4. C++Primer再学习(3)
  5. 文件上传案例的客户端
  6. product text的language dropdown list里 没有对应语言的问题
  7. php图片案例,web开发N例-案例2:PHP绘制图片、绘制中文
  8. android 友盟推送获取不到devicetoken,使用友盟消息推送中遇到的哪些问题--索引(开发者必读)...
  9. 微信小程序为什么会成为了实体店“上线”的最优选择?
  10. 使用Highcharts实现柱状图展示
  11. mongodb集群linux日志分割,Linux下Mongodb数据库日志切割及定时删除
  12. Cesium应用篇:3控件(1)Clock
  13. 多片段时序数据建模预测实践
  14. c-free显示运行程序错误怎么办_Mac电脑没声音了怎么办?解决Mac上声音问题
  15. 简单一招能让你的浏览器下载速度提升几十倍,从此弃用IDM等下载器
  16. matlab 非支配排序,带精英策略的非支配排序的遗传算法改方法与流程
  17. 初中数学可以用计算机吗,中学生利用手机电脑学习数学可行吗?
  18. 【渝粤教育】电大中专计算机职业素养 (11)作业 题库
  19. crt、cer类型证书转换成bks
  20. 装修鸿蒙瓷砖选择,电视墙用什么材料好?实用与美观,到底该如何选?

热门文章

  1. RabbitMQ基础入门教程(从安装到SpringBoot整合)
  2. [灯哥开源—四足机器人]程序算法讲解与STM32移植——运行框架(两个主线程)
  3. ftp上传软件,五款ftp优秀的ftp上传软件
  4. 普林斯顿邓嘉学生亲述:一定要博士学位?不,我本科生也能在大厂当应用科学家...
  5. pcie读写ddr_DDR4内存与PCIe 双杀打造4秒闪开的五星神机
  6. 树莓派外接显示器黑屏_树莓派4B连接显示器黑屏或者提示input not supported
  7. 场景管理:四叉树算法C++实现
  8. 变量的三重属性_内存寻梦环游记:一个变量的三重死亡
  9. latex中极限号下边怎么打_latex 极限下标
  10. 【DNS应用案例】智能DNS赋能海运集团全球域名体系建设