SpringBoot整合GateWay(详细配置)

 

前言

        在Spring Boot中整合Spring Cloud Gateway是一个常见的需求,尤其是当需要构建一个微服务架构的应用程序时。Spring Cloud Gateway是Spring Cloud生态系统中的一个项目,它提供了一个API网关,用于处理服务之间的请求路由、安全、监控和限流等功能。

一、GateWay依赖

   <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>

二、application.yml配置

server:
  port: 9527

spring:
  application:
    name: cloud-gateway
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true #开启从注册中心动态创建路由的功能,利用微服务名进行路由
      routes:
        - id: payment_routh #payment_route    #路由的ID,没有固定规则但要求唯一,建议配合服务名
#          uri: http://localhost:8001          #匹配后提供服务的路由地址
          uri: lb://CLOUD-PAYMENT-SERVICE #匹配后提供服务的路由地址
          predicates:
            - Path=/Payment/getPaymentById/**         # 断言,路径相匹配的进行路由

        - id: payment_routh2 #payment_route    #路由的ID,没有固定规则但要求唯一,建议配合服务名
#          uri: http://localhost:8001          #匹配后提供服务的路由地址
          uri: lb://CLOUD-PAYMENT-SERVICE #匹配后提供服务的路由地址
          predicates:
            - Path=/Payment/lb/**         # 断言,路径相匹配的进行路由
            - After=2020-11-20T17:07:24.352+08:00[Asia/Shanghai]
#            - Cookie=username,longy
            # - Before=2020-11-20T17:11:24.352+08:00[Asia/Shanghai]
            #- Header=X-Request-Id, \d+  # 请求头要有X-Request-Id属性并且值为整数的正则表达式

 三、过滤器

@Component
@Slf4j
public class MyLogGatewayFilter implements GlobalFilter, Ordered {
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        System.out.println("***********************************************" + new Date());
        log.info("***********************************************" + new Date());
        String uname = exchange.getRequest().getQueryParams().getFirst("uname");
        if (uname == null) {
            System.out.println("用户名为null,非法用户***********************o(╥﹏╥)o");
            log.info("用户名为null,非法用户***********************o(╥﹏╥)o");
            exchange.getResponse().setStatusCode(HttpStatus.NO_CONTENT);
            return exchange.getResponse().setComplete();
        }
        return chain.filter(exchange);
    }

    @Override
    public int getOrder() {
        return 0;
    }
}

总结

        整合Spring Cloud Gateway到Spring Boot项目中需要添加相关依赖、配置路由规则、过滤器以及其他相关设置。这个过程涉及到多个步骤和配置文件,需要仔细规划和配置。一旦配置完成,Spring Cloud Gateway将为你的微服务架构提供强大的路由、安全性和监控功能。

相关推荐

  1. SpringBoot Gateway整合过程中的问题

    2024-02-18 08:18:01       78 阅读
  2. gateway基本配置详解

    2024-02-18 08:18:01       29 阅读
  3. Springboot、Springmvc整合PageOffice配置

    2024-02-18 08:18:01       49 阅读
  4. Spring-Cloud-Gateway Filter详细配置说明

    2024-02-18 08:18:01       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-18 08:18:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-18 08:18:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-02-18 08:18:01       82 阅读
  4. Python语言-面向对象

    2024-02-18 08:18:01       91 阅读

热门阅读

  1. 7.Cloud-GateWay

    2024-02-18 08:18:01       45 阅读
  2. vue面试题

    2024-02-18 08:18:01       42 阅读
  3. useState和useReducer区别

    2024-02-18 08:18:01       44 阅读
  4. markdown绘制流程图相关代码片段记录

    2024-02-18 08:18:01       53 阅读
  5. Effective Objective-C 学习第三周

    2024-02-18 08:18:01       42 阅读
  6. MySQL导入/导出数据

    2024-02-18 08:18:01       35 阅读
  7. Linux下Spark offline安装graphframes包

    2024-02-18 08:18:01       65 阅读
  8. Arduino程序简单入门

    2024-02-18 08:18:01       39 阅读
  9. B31SE Image Processing

    2024-02-18 08:18:01       42 阅读
  10. MySQL的索引类型

    2024-02-18 08:18:01       42 阅读