SpringCloudAlibaba学习笔记(三)--SpringCloud Gateway

本文详细介绍了SpringCloud Gateway的使用,包括引入依赖、启动类配置,以及如何从Nacos获取服务信息。深入探讨了SpringCloud Gateway的执行流程、predicate断言(内置与自定义)和过滤器机制(局部与全局过滤器)。SpringCloud Gateway作为高性能的API网关,具有强大的功能,但也存在学习成本高等挑战。文章通过实例展示了自定义断言和过滤器的实现,有助于读者深入理解其工作原理。
摘要由CSDN通过智能技术生成

API网关,能替换Zuul。比Zuul强大。

优点:

性能强劲:是第一代网关Zuul的1.6倍;

功能强大:内置了很多实用的功能,例如转发、监控、限流等;

设计优雅,容易扩展;

缺点:

其实现依赖Netty与WebFlux,不是传统的Servlet模型,学习成本高;

不能将其部署在Tomcat、Jetty等Servlet容器中,只能打成jar包运行;

需要SpringBoot2.0及以上版本;

使用:

引入依赖:

        <!--    gateway  注意:此模块不能引入starter-web    -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>

启动类:

@SpringBootApplication
public class ShopGateWay {
    public static void main(String[] args) {
        SpringApplication.run(ShopGateWay.class,args);
    }
}

配置文件:

server:
  port: 7000
spring:
  application:
    name: api-gateway
  cloud:
    #网关配置
    gateway:
      routes: #路由数组,可配置多个 【路由就是指当请求满足什么样的条件的时候转发到哪个服务】
        - id: product_route #当前路由的标识,唯一
          uri: http://127.0.0.1:8081 #请求最终要被转发到的地址
          order: 1 #路由的优先级,数字越小优先级越高
          predicates:  #断言(条件判断,返回值是boolean  转发请求要满足的条件)
            - Path=/product-serv/** #当请求路径满足Path指定的规则时,此路由信息才会正常转发
          filters: #过滤器(在请求传递过程中,对请求进行操作)
            - StripPrefix=1 #在请求转发之前去掉一层前缀路径  /product-serv/** --》**
          #metadata: #元数据

到此即可完成基本的gateway使用。

从Nacos中获取服务信息

上述配置中,配置文件以硬编码的方式将目标uri写死固定,非常不方便。

所以要从Nacos中获取服务信息。

步骤:

引入nacos依赖:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值