06.`getaway`-网关-`spring-cloud-getaway`

1. 依赖
  1. 依赖

    <dependencies>
        <!-- 网关 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
    </dependencies>
    
  2. 说明

    1. 父依赖

      <properties>
          <spring-cloud.version>Hoxton.SR3</spring-cloud.version>
      </properties>
      
      <dependencyManagement>
          <dependencies>
              <dependency>
                  <groupId>org.springframework.cloud</groupId>
                  <artifactId>spring-cloud-dependencies</artifactId>
                  <version>${spring-cloud.version}</version>
                  <type>pom</type>
                  <scope>import</scope>
              </dependency>
          </dependencies>
      </dependencyManagement>
      
    2. spring-cloud-getaway不使用web作为服务器,而是使用WebFlux(已经依赖,不需要额外添加依赖)作为服务器,一定不能依赖spring-boot-starter-web

    3. 需要从注册中心拉取服务,依赖spring-cloud-starter-alibaba-nacos-discovery

      <dependencies>
          <!-- nacos 注册中心 -->
          <dependency>
              <groupId>com.alibaba.cloud</groupId>
              <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
          </dependency>
      </dependencies>
      
  3. spring-cloud-getway 官方文档

2. 配置文件
  1. 主配置文件application.yml

    server:
      # 程序端口
      port: 8185
      
    spring:
      profiles:
        # 注册 application-nacos.yml、application-getway.yml 配置文件
        active: nacos,getaway
    
  2. nacos配置文件application-nacos.yml

    spring:
      application:
        # 注册到 nacos 注册中心的服务名
        name: web-api-getaway
      cloud:
        nacos:
          discovery:
            # nacos 注册中心的地址
            server-addr: 120.25.207.44:8848
    
  3. getaway配置文件application-getaway.yml

    spring:
      cloud:
        # 路由网关配置
        gateway:
          # 设置与服务注册发现组件结合,这样可以采用服务名的路由策略
          discovery:
            locator:
              enabled: true
          routes:
            # 采用自定义路由 ID(有固定用法,不同的 id 有不同的功能
            # 可以配置很多的路由信息,但是每个路由都有一个唯一的 id 来标识
            - id: web-service
              # 采用 LoadBalanceClient 方式请求,以 lb:// 开头定位到微服务中的某个服务,后面的是注册在 Nacos 上的服务名
              uri: lb://web-service
              # Predicate 翻译过来是“谓词”的意思,必须,主要作用是匹配用户的请求,有很多种用法
              predicates:
                # Path 配置请求的路径,多个路径可以用逗号隔开。
                # /test/** 对应在 nacos 注册的 web-service 这个服务下,访问路径为 /test 下面的所有的方法
                - Path=/test/**
                # Method 方法谓词,这里是匹配 GET 和 POST 请求
                # 请求的方式,大小写不敏感
                - Method=GET,POST
    
3. 启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

// 开启 nacos 注册中心扫描,发现该服务
@EnableDiscoveryClient
@SpringBootApplication
public class WebApiGetawayApplication {

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

}
4. 目录结构

目录结构

5. 测试访问
  1. 请求方式:http://网关ip:网关端口/服务名/**

  2. 结果

    结果

5. getaway-demo 源码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值