Spring框架 配置Gateway网关/spring cloud gateway 基础入门案例教程

文章目录

概要

网关作为微服务集群唯一的对外入口,可以实现很多功能.

例如:

统一的解决**跨域(一个ajax请求 origin域名和请求目标url中域名不同,ip不同,域名不同,端口不同,都会引发的问题)**问题.

统一的身份认证.认证解析JWT.

如果网关能够结合一些其它的插件 可以实现入口流量控制(sentinel).做到监控预警(Prometheus)等

网关的落地方案(Spring cloud gateway),还有其它选择

  1. netflix zuul: 原来比较火的一个网关组件,但是netflix奈飞停更了,zuul2流产了.
  2. Kong: 也是一种选择
  3. Nginx: 反向代理网关,并发能力,速度都可以保证. 一般要配合网关组件实现更前端的入口控制

spring cloud gateway 实现的具体功能:

  • 请求转发: 网关不具备处理某个请求的能力,所以一定要转发给微服务.
  • 路由 匹配: (网络路由表示 端到端的路径网络选择)根据请求条件(包括地址 , ,),功能判断具体由哪个服务来完成这次处理.
  • 过滤器(拦截功能): 可以在过滤逻辑中,对请求做自定义的逻辑处理(比如验证身份.记录请求次数,记录并发)

配置流程

第一步创建一个新的子工程和第二步添加main启动类

第三步添加依赖

复制代码
<!--spring boot web环境-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--gateway 依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
        <!--nacos-client 注册中-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--http负载均衡组件-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>

第四步配置启动信息yml文件信息

复制代码
server:
  port: 30000
spring:
  application:
    name: medical-gateway
  #切换一下底层web容器类型
  main:
    web-application-type: reactive
  #配置网关 完成入门案例的需求
  cloud:
    gateway:
#      网关的路由们
      routes:
        # 当前路由对象的id值
        - id: demo01
          # 网关转发的目标
          uri: http://localhost:19081
          # 转发判断路由的条件(判断断言)
          predicates:
            # Path断言 进入网关 匹配请求的path路径
            - Path=/**

第五步启动启动类,如果启动报错请参考技术细节有详细讲解问题解决

技术细节

出现以下启动问题这个报错通常是由于在使用 Spring Boot 中的 WebFlux(响应式编程)时,缺少了 Reactive Web 服务器工厂(ReactiveWebServerFactory)的配置而导致的

解决方式如图所示:先清除一下,再编译

第一步骤:

执行命令:mvn clean compile -X

第二步骤:

第三步骤:重启idea,再运行

如果以上还不行,可以私信给作者帮你解决或者关注《全栈鍾猿》公众号私信作者解决哦

小结

相关推荐
Maiko Star2 天前
Gateway网关拦截自定义header & 用户上下文打通实战
gateway·threadlocal
skywalk81635 天前
LLM API Gateway:使用Comate Spec Mode创建大模型调用中转服务器
服务器·人工智能·gateway·comate
我是小妖怪,潇洒又自在5 天前
springcloud alibaba(七)Gateway--服务网关
spring·spring cloud·gateway
boy快快长大8 天前
【Spring Cloud Alibaba】Gateway(一)
数据库·gateway
谷隐凡二9 天前
网关的核心概念及简单演进介绍
gateway
摇滚侠9 天前
2025最新 SpringCloud 教程,Gateway-过滤器-基本使用,笔记58
笔记·spring cloud·gateway
摇滚侠9 天前
2025最新 SpringCloud 教程,Gateway-过滤器-globalFilter,笔记60
笔记·spring cloud·gateway
摇滚侠9 天前
2025最新 SpringCloud 教程,Gateway-过滤器-默认过滤器,笔记59
笔记·spring cloud·gateway
摇滚侠9 天前
2025最新 SpringCloud 教程,Gateway-过滤器-自定义,全局跨域,总结,笔记61,笔记62,笔记63
笔记·spring cloud·gateway