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

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

小结

相关推荐
泽济天下10 小时前
【工作记录】Kong Gateway 入门篇之部署及简单测试
gateway·kong
JAVA坚守者1 天前
API 网关核心功能解析:负载均衡、容灾、削峰降级原理与实战摘要
gateway·负载均衡·微服务架构·容灾备份·api 网关·削峰降级·云原生技术
大G哥2 天前
实战演练:用 AWS Lambda 和 API Gateway 构建你的第一个 Serverless API
云原生·serverless·云计算·gateway·aws
说淑人2 天前
Spring Cloud & 以Gateway实现限流(自定义返回内容)
java·spring cloud·gateway·限流
zhojiew4 天前
istio in action之Gateway流量入口与安全
安全·gateway·istio
Absinthe_苦艾酒4 天前
SpringCloud之Gateway基础认识-服务网关
spring cloud·微服务·gateway
金斗潼关6 天前
SpringCloud GateWay网关
java·spring cloud·gateway
残花月伴6 天前
springCloud/Alibaba常用中间件之GateWay网关
spring cloud·中间件·gateway
柚个朵朵7 天前
Springclound常用五大组件及其使用原理
spring cloud·hystrix·eureka·ribbon·gateway·feign
曹朋羽7 天前
spring cloud gateway 断言(Predicates)与过滤器(filters)
spring cloud·gateway