Spring Cloud Alibaba - 23 Gateway初体验

简介: Spring Cloud Alibaba - 23 Gateway初体验

6735aa4777de402592fbe82e8b40ee3d.png

概述


Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,用于取代Zuul网关。


基于Netty,WebFlux . 由于不是Sevlet容器,不能打成war包, 只支持SpringBoot2.X,不支持1.x

基于Netty,WebFlux . 由于不是Sevlet容器,不能打成war包, 只支持SpringBoot2.X,不支持1.x

基于Netty,WebFlux . 由于不是Sevlet容器,不能打成war包, 只支持SpringBoot2.X,不支持1.x

50e28ab43ab7411aa9129ee6f573a1c9.png


重要的事情说三遍。


网关的作用


网关常见的功能有路由转发、权限校验、限流控制等作用


官网

https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/

来个栗子

创建一个gateWay的工程 artisan-cloud-gateway


step1 搞依赖

  <dependencies>
    <!--gateway -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
        <!--nacos-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
        </dependency>
     <!--actuator-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>


step2 搞注解 (gateway没有注解)

写个服务发现的注解(高版本也可以不写),gateway没有注解


step3 搞配置

server:
  port: 8888
#gateway注册到nacos上的服务名称
spring:
  application:
    name: api-gateway
  cloud: #nacos
    nacos:
      discovery:
        server-addr: 1.117.97.88:8848
    gateway: #gateway
      discovery:
        locator:
          enabled: false   # 是否可以通过微服务的名称直接调用接口 【默认值false, 建议保持false】
      enabled: true  # 是否开启服务网关
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always  # 打开端点详情


其他工程 & 验证

分别启动

artisan-cloud-gateway 【8888】

artisan-cloud-gateway-order【8080】

artisan-cloud-gateway-product【8084】

b7d88d9fa40041fe9d3a3f974bb8e9d9.png


再确认下【artisan-cloud-gateway】的配置文件

a6a8ea24a30144deafcc077c8557753b.png

通过网关地址 端口为8888访问订单微服务


6d7afcd2b00d4d08995211a8abdca7fb.png我们调整下参数,开启拉取nacos配置

c0070bf7b11240cb8823f5060f3e14e0.png

重启应用,重新访问

77f4711b2d7c4a1c9ace52ddeea0c7ef.png

如果我们 禁用网关呢?

db0c41b631bc48a9b54b83a06d14593b.png


重启应用,重新访问

f4b5633297ae40cab355f7bc6c6efb3b.png

参数解读


spring.cloud.gateway.discovery.locator.enabled


57d84aface324bc1ba2274b98a92feb9.png


启网关拉取nacos的服务 即是否可以通过微服务的名称直接调用接口 【默认值false, 建议保持false】

开启了,容易暴漏后端服务


spring.cloud.gateway.enabled

6714ce33aa56404c8a4ba819202c3911.png


网关的开启与关闭 , 需要开启


转发过程


我们简单看下 spring.cloud.gateway.discovery.locator.enabled 设置为true后, 网关是如何处理这些请求的 ,后面再解读源码



275b0a4294cc4b4ab3555721ada18235.png


源码


https://github.com/yangshangwei/SpringCloudAlibabMaster

相关文章
|
9天前
|
Java Nacos Sentinel
Spring Cloud Alibaba:一站式微服务解决方案
Spring Cloud Alibaba(简称SCA) 是一个基于 Spring Cloud 构建的开源微服务框架,专为解决分布式系统中的服务治理、配置管理、服务发现、消息总线等问题而设计。
118 13
Spring Cloud Alibaba:一站式微服务解决方案
|
12天前
|
JavaScript Java Kotlin
深入 Spring Cloud Gateway 过滤器
Spring Cloud Gateway 是新一代微服务网关框架,支持多种过滤器实现。本文详解了 `GlobalFilter`、`GatewayFilter` 和 `AbstractGatewayFilterFactory` 三种过滤器的实现方式及其应用场景,帮助开发者高效利用这些工具进行网关开发。
|
28天前
|
存储 人工智能 Java
Spring AI Alibaba 配置管理,用 Nacos 就够了
本文通过一些实操案例展示了 Spring AI Alibaba + Nacos 在解决 AI 应用中一系列复杂配置管理挑战的方案,从动态 Prompt 模板的灵活调整、模型参数的即时优化,到敏感信息的安全加密存储。Spring AI Alibaba 简化了对接阿里云通义大模型的流程,内置 Nacos 集成也为开发者提供了无缝衔接云端配置托管的捷径,整体上极大提升了 AI 应用开发的灵活性和响应速度。
189 13
|
1月前
|
人工智能 前端开发 Java
基于开源框架Spring AI Alibaba快速构建Java应用
本文旨在帮助开发者快速掌握并应用 Spring AI Alibaba,提升基于 Java 的大模型应用开发效率和安全性。
基于开源框架Spring AI Alibaba快速构建Java应用
|
2月前
|
人工智能 Java API
阿里云开源 AI 应用开发框架:Spring AI Alibaba
近期,阿里云重磅发布了首款面向 Java 开发者的开源 AI 应用开发框架:Spring AI Alibaba(项目 Github 仓库地址:alibaba/spring-ai-alibaba),Spring AI Alibaba 项目基于 Spring AI 构建,是阿里云通义系列模型及服务在 Java AI 应用开发领域的最佳实践,提供高层次的 AI API 抽象与云原生基础设施集成方案,帮助开发者快速构建 AI 应用。本文将详细介绍 Spring AI Alibaba 的核心特性,并通过「智能机票助手」的示例直观的展示 Spring AI Alibaba 开发 AI 应用的便利性。示例源
1187 11
|
2月前
|
人工智能 开发框架 Java
总计 30 万奖金,Spring AI Alibaba 应用框架挑战赛开赛
Spring AI Alibaba 应用框架挑战赛邀请广大开发者参与开源项目的共建,助力项目快速发展,掌握 AI 应用开发模式。大赛分为《支持 Spring AI Alibaba 应用可视化调试与追踪本地工具》和《基于 Flow 的 AI 编排机制设计与实现》两个赛道,总计 30 万奖金。
|
19天前
|
负载均衡 Java API
项目中用的网关Gateway及SpringCloud
Spring Cloud Gateway 是一个功能强大、灵活易用的API网关解决方案。通过配置路由、过滤器、熔断器和限流等功能,可以有效地管理和保护微服务。本文详细介绍了Spring Cloud Gateway的基本概念、配置方法和实际应用,希望能帮助开发者更好地理解和使用这一工具。通过合理使用Spring Cloud Gateway,可以显著提升微服务架构的健壮性和可维护性。
25 0
|
Dubbo Java 应用服务中间件
深入了解Spring Cloud Alibaba Dubbo
在现代分布式系统开发中,构建高性能、可伸缩性和弹性的微服务架构变得越来越重要。Spring Cloud Alibaba Dubbo(简称Dubbo)是一个开源的分布式服务框架,可以帮助开发者构建强大的微服务架构,具备负载均衡、服务治理、远程调用等强大功能。本文将深入介绍Spring Cloud Alibaba Dubbo,帮助你理解它的核心概念、工作原理以及如何在你的项目中使用它。
|
Kubernetes Java 微服务
Spring Boot 单体应用一键升级成 Spring Cloud Alibaba(1)
Spring Boot 单体应用一键升级成 Spring Cloud Alibaba(1)
146 0
Spring Boot 单体应用一键升级成 Spring Cloud Alibaba(1)
|
7月前
|
Java 中间件 开发者
Spring Cloud Alibaba
【1月更文挑战第27天】【1月更文挑战第127篇】Spring Cloud Alibaba
146 1