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个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放弃 治疗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值