博海拾贝--springcloud的组件及使用(3)服务网关 GateWay

本文介绍了Spring Cloud Gateway作为Spring Cloud的二代网关框架,包括其转发、限流、熔断和权限校验等功能。文章详细讲解了在Spring Boot 2.0.0和Spring Cloud Finchley.RELEASE版本下的配置步骤,包括创建新项目、添加依赖、Bootstrap.yml配置以及路由规则设定。通过设置断言如Path、Query、Cookie和Header,实现路径、请求参数、cookie和请求头的路由规则。最后,通过启动和测试验证了网关路由的成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Srpingcloud 服务网关 GateWay

前言:

Spring Cloud Gateway是springcloud官方推出的第二代网关框架,她包括转发、限流、熔断、权限校验等功能。

本文就来介绍GateWay的相关配置和使用

 

版本:

Springboot 2.0.0

Springcloud Finchley.RELEASE

注意使用这个版本组合时 spring-cloud-gateway-core的版本必须是2.0.2以上 不然在网关路由时会因为版本原因出现空指针异常。

 

网关配置及访问:

首先我们新建一个新的maven项目:

然后添加springcloud-gateway的jar包依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-gateway</artifactId>
        <version>2.0.3.RELEASE</version>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-gateway-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-gateway-core</artifactId>
        <version>2.0.3.RELEASE</version>
    </dependency>
</dependencies>

Bootstrap.yml配置:

server:
  port: 8082
spring:
  application:
    name: springcloud-gateway
  cloud:
    config:
      discovery:
        enabled: true
        service-id: woka-config
    gateway:
      discovery:
        locator:
          enabled: true
          lower-case-service-id: true
      routes:  
      - id: woka-gateway  #网关iD
        uri: http://localhost:7001/   #这里可以也可以写lb:/网关id
        predicates:
          - Path=/admin/*  需要的路由的路径

          - Query=author, admin
          - Query=admin
          - Method=GET
          - Cookie=user, admin
          - Header=X-Request-Id, \d

 

 

 

简要介绍一下这里的几个属性

Route(路由)

filter(过滤器) :路由请求的过滤逻辑

Predicates (断言):也就是路由的规则  可以理解为满足条件才可以触发路由。下面是所有断言的属性条件:

Path : 满足路径条件的断言

Before:时间条件 在某个时间内

After:和before 类似

Cookie:请求包含某个cookie

Header:满足请求头的条件

HOST:主机名匹配

Method:请求方式 get/post

QUERY:请求

启动类配置:

 

测试步骤:启动注册中心----启动服务提供者----启动消费者----启动网关----调用http://localhost:7001/admin/login(这是我消费者的接口 ) 可以成功返回----将其改成http://localhost:8082/admin/login网关地址   也能成功返回则说明网关路由成功了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值