server:
  port: 9000
  netty:
    http:
      header:
        max-kilobytes: 64  # 将限制提高到32KB，可根据实际需求调整
spring:
  servlet:
    multipart:
      max-file-size: 100MB    # 单个文件最大大小
      max-request-size: 300MB  # 单次请求总大小
  application:
    name: gateway
  cloud:
    gateway:
      routes:
        - id: gateway_server
          uri: lb://gateway 
          predicates: 
            - Path=/gateway/**
          filters: 
            - StripPrefix=1
            - RewritePath=/gateway/(?<segment>.*),/$\{segment}

        - id: authentication_server
          uri: lb://authentication
          predicates:
            - Path=/authentication/**
          filters: 
            - StripPrefix=1

        - id: weekFlow_server
          uri: lb://weekFlow
          predicates:
            - Path=/weekFlow/**
          filters: 
            - StripPrefix=1

      globalcors:
        enabled: true
        corsConfigurations:
          '[/**]':
            allowedOriginPatterns: "*"  # 允许所有来源
            allowedMethods:
              - "GET"
              - "POST"
              - "PUT"
              - "DELETE"
              - "OPTIONS"
            allowedHeaders:
              - "*"
            allowCredentials: true  # 允许携带凭证
            maxAge: 3600
    loadbalancer:  # LoadBalancer 配置（Spring Cloud 2021.x 默认使用它，而非Ribbon）
      retry:  # 重试机制配置
        enabled: true  # 开启负载均衡重试功能：当请求某个服务实例失败时，自动重试其他健康实例
        max-retries-on-next-service: 1  # 切换到下一个服务实例的最大重试次数（默认1次）
        max-retries-on-same-service: 0  # 同一服务实例的最大重试次数（默认0次，避免幂等性问题）
      health-check:   # 健康检查配置（用于识别并隔离不健康的服务实例）
        enabled: true  # 显式开启健康检查（部分版本默认关闭，建议手动开启）
        interval: 30s  # 健康检查间隔时间：每30秒检查一次服务实例健康状态
        initial-delay: 0  # 首次健康检查延迟时间：服务启动后立即执行第一次检查（单位ms/s/m/h/d）
        timeout: 10s  # 健康检查超时时间：超过5秒未响应则判定为不健康
      configurations: # 负载均衡策略配置（默认轮询，可自定义）
        - default  # 使用默认配置（包含轮询策略） # 若需自定义策略，可替换为自定义配置类名（如 "random-loadbalancer"）
    sentinel: 
      transport: # 与 Sentinel 控制台的通信配置
        dashboard: 127.0.0.1:7000  # Sentinel 控制台地址
        client-ip: 127.0.0.1 # 当前服务实例的 IP 地址（可选，默认自动获取，多网卡场景建议显式指定）
      feign:
        enabled: true  # 开启 Sentinel 与 Feign 的集成，使 Feign 调用支持熔断、限流等 Sentinel 功能
knife4j:
  gateway:
    # ① 第一个配置，开启gateway聚合组件
    enabled: true
    # ② 第二行配置，设置聚合模式采用discover服务发现的模式
    strategy: discover
    discover:
      # ③ 第三行配置，开启discover模式
      enabled: true
      # ④ 第四行配置，聚合子服务全部为Swagger2规范的文档
      version: swagger2