Gateway快速入门

back

Gateway快速入门


快速入手网关的基本路由功能。基本步骤如下:

1. 创建SpringBoot工程gateway,引入网关依赖

2. 编写启动类

3. 编写基础配置和路由规则

4. 启动网关服务进行测试

创建gateway服务,引入依赖

implementation 'org.springframework.cloud:spring-cloud-starter-gateway'
implementation 'com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery'
implementation 'org.springframework.cloud:spring-cloud-starter-loadbalancer'

编写启动类

package edu.uestc.canary.gateway;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

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

编写基础配置和路由规则

server:
  port: 10010 # 网关端口
spring:
  application:
    name: gateway # 服务名称
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos地址
    gateway:
      routes: # 网关路由配置
        - id: category-service # 路由id,自定义,只要唯一即可
          # uri: http://127.0.0.1:8088 # 路由的目标地址 http就是固定地址
          uri: lb://categoryservice # 路由的目标地址 lb就是负载均衡,后面跟服务名称
          predicates: # 路由断言,也就是判断请求是否符合路由规则的条件
            - Path=/category/** # 这个是按照路径匹配,只要以/category/开头就符合要求

我们将符合Path 规则的一切请求,都代理到 uri参数指定的地址。
本例中,我们将 /category/**开头的请求,代理到`lb://categoryservice,lb是负载均衡,根据服务名拉取服务列表,实现负载均衡。

启动测试

重启网关,访问http://localhost:10010/category/1时,符合/category/**规则,请求转发到uri:http://categoryservice/category/1,得到了结果

网关路由的流程图