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,再运行

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

小结

相关推荐
Raas10019 小时前
MAI Gateway(魔芋企业级AI网关)技术揭秘:AI网关支持哪些模型?从原理到落地
大数据·人工智能·网关·gateway·mai gateway·企业级产品
多云行者1 天前
什么是LLM Gateway?定义、技术栈与落地方式详解
网关·llm·gateway·api·传统
毅炼2 天前
Rover-Suite 开源发布:轻量服务注册中心与网关一体化方案
java·后端·系统架构·gateway
Raas1002 天前
AI网关核心功能?MAI Gateway(魔芋企业级AI网关)如何赋能企业AI能力
大数据·人工智能·gateway·mai gateway·企业级产品
多云行者4 天前
LLM Gateway科普:大模型统一接入与治理,究竟解决了什么
大模型·llm·gateway·api·大模型统一接入
Raas1005 天前
MAI Gateway(魔芋企业级AI网关)功能全解:AI网关有哪些功能?一文看懂AI网关能力矩阵
大数据·人工智能·矩阵·gateway·mai gateway·企业级产品
一心同学5 天前
Hermes架构拆解之Gateway
架构·gateway·agent·hermes
海南java第二人6 天前
Spring Cloud Gateway 过滤器从入门到精通:配置、执行顺序与实战
网关·gateway
NGINX开源社区6 天前
NGINX Gateway Fabric 2.6:F5 WAF for NGINX 集成 Gateway API
nginx·gateway·fabric