首页 > 其他分享 >12、网关SpringCloud-Gateway

12、网关SpringCloud-Gateway

时间:2023-01-01 19:55:22浏览次数:42  
标签:网关 12 SpringCloud Gateway 依赖 spring gateway 路由

网关作为流量的入口,常用功能包括路由转发、权限校验、限流控制等。而 springcloud gateway 作为 SpringCloud 官方推出的第二代网关框架,取代了 Zuul 网关。
网关提供 API 全托管服务,丰富的 API 管理功能,辅助企业管理大规模的 API,以降低管理成本和安全风险,包括协议适配、协议转发、安全策略、防刷、流量、监控日志等功能。
Spring Cloud Gateway 旨在提供一种简单而有效的方式来对 API 进行路由,并为他们提供切面,例如:安全性,监控/指标和弹性等。
官方文档地址:https://docs.spring.io/spring-cloud-gateway/docs/3.1.4/reference/html/#the-query-route-predicate-factory

**一、Spring Cloud Gateway 特点: **

  • 基于 Spring5,支持响应式编程和 SpringBoot2.0
  • 支持使用任何请求属性进行路由匹配
  • 特定于路由的断言和过滤器
  • 集成 Hystrix 进行断路保护
  • 集成服务发现功能
  • 易于编写 Predicates 和 Filters
  • 支持请求速率限制
  • 支持路径重写

二、核心概念

  • 路由。路由是网关最基础的部分,路由信息有一个 ID、一个目的 URL、一组断言和一组 Filter 组成。如果断言路由为真,则说明请求的 URL 和配置匹配
  • 断言。Java8 中的断言函数。Spring Cloud Gateway 中的断言函数输入类型是 Spring5.0框架中的 ServerWebExchange。Spring Cloud Gateway 中的断言函数允许开发者去定义匹配 来自于 http request中的任何信息,比如请求头和参数等。
  • 过滤器。一个标准的 Spring webFilter。Spring cloud gateway 中的 filter 分为两种类型的 Filter,分别是 Gateway Filter 和 Global Filter。过滤器 Filter 将会对请求和响应进行修改处理

三、使用步骤
1)创建gateway子项目,并添加Gateway的依赖(注意gateway需要排除springbootweb的依赖)

同时依赖我们的gulimall-common模块(里面有我们所有模块所共同需要的依赖,bean等),可通过下面这种方法避免继承父级依赖

<dependency>
    <groupId>com.gulimall</groupId>
    <artifactId>gulimall-common</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </exclusion>
    </exclusions>
</dependency>

2)由于我们依赖了gulimall-common模块,而gulimall-common中添加了nacos作为注册中心和配置中心的依赖,所以我们需要在gateway模块中添加注册中心和配置中心相关的配置
①添加注册中心的配置
引入依赖
在application.properties中添加spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848spring.application.name=gulimall-gateway
开启注册与发现的注解

  • 其中那个@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})是因为我们继承了mybatisplus的相关依赖,他会进行mysql的相关配置,而我们的路由功能不
    需要也就没有在配置中配置相关的url、driver等配置,所有通过这个注解来忽略相关mysql的加载

②添加配置中心的配置
引入依赖
在bootstrap.yml配置文件中配置 Nacos Config 元数据

3)进行路由的相关配置,可以参考官网文档https://docs.spring.io/spring-cloud-gateway/docs/3.1.4/reference/html/#the-query-route-predicate-factory

最需要注意的点就是引入gateway依赖时,如果继承了父级依赖,而父级依赖中有Springbootweb依赖,要记得排除掉这个依赖

标签:网关,12,SpringCloud,Gateway,依赖,spring,gateway,路由
From: https://www.cnblogs.com/morehair/p/17018489.html

相关文章

  • OneStack:Ubuntu 12.04 (或11.10) 一键安装部署OpenStack云计算平台
     OneStack:在Ubuntu12.04(precise)上一键安装部署OpentackEssex提醒:如果你喜欢折腾,喜欢自己一步一步安装各个功能组件和配置conf文件,你可以略过此文。本文工具可以在裸机和虚......
  • RNN详解(12)
    本文部分参考和摘录了以下文章,在此由衷感谢以下作者的分享!​​​https://zhuanlan.zhihu.com/p/28054589​​​​​​https://zhuanlan.zhihu.com/p/28687529​​​​​......
  • 好题分享、心路历程(力扣1225)
    【题目介绍】该题为力扣1225,名为报告系统状态的连续日期。【题型分类】属于连续专题。官网标为困难题。【思路分享】这里的连续属于时间连续,采用row_number()、subd......
  • 【SpringCloud】SpringCloud简介
    SpringCloud简介​​1.认识微服务​​​​1.0.学习目标​​​​1.1.单体架构​​​​1.2.分布式架构​​​​1.3.微服务​​​​1.4.SpringCloud​​​​1.5.总结​​​​2.......
  • 力扣---1262. 可被三整除的最大和
    给你一个整数数组 nums,请你找出并返回能被三整除的元素最大和。示例1:输入:nums=[3,6,5,1,8]输出:18解释:选出数字3,6,1和8,它们的和是18(可被3整除的最大和)。示例2......
  • 9、SpringCloud-Nacos作为配置中心
    1、pom.xml引入NacosConfigStarter<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>......
  • fix协议介绍12-取消订单被拒(OrderCacelReject)
    FIX.5.0SP2MessageOrderCancelReject [type'9']<OrdCxlRej>Theordercancelrejectmessageisissuedbythebrokeruponreceiptofacancelrequestorcancel......
  • 8、SpringCloud-OpenFeign远程调用步骤
    假设我们想要用会员服务调用优惠券服务来查询会员的所有优惠券;1、引入依赖<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring......
  • 122FPS、51.8mAP 超轻量关键点检测算法PP-TinyPose来啦!
    精准的人机交互任务,如手势控制、智能健身、体感游戏等,背后的核心技术是什么?那必须是关键点检测!还有智慧城市、智慧安防等领域的打架斗殴、司机/工人违规操作等异常行为识别,......
  • 7、SpringCloudAlibaba--注册中心Nacos
    Nacos是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。他是使用java编写。需要依赖java环境Nacos文档地址:https://nacos.io/z......