扩展Spring-Cloud-Gateway API网关

网关基础中间件

基于Spring Cloud Gateway扩展实现
github 地址

说明

服务端需要支持Eureka协议注册到Eureka注册中心中,网关会自动服务发现Eureka上注册的服务列表,当发生请求时进行服务端负载均衡。

快速部署

  1. 初始化SQL(在doc文件夹下)
  2. 启动Eureka
  3. 修改网关Eureka地址

实现功能

  • 支持API参数校验 (已完成)
  • 支持appId授权服务校验 (已完成)

实现原理

  • 在分布式环境下 采用与Eureka Server相同的服务列表缓存更新策略,一级缓存为堆内内存,二级缓存为Guava堆外内存,配置内容保存在持久化设备中(默认数据库)。

架构图架构图

Spring Cloud 微服务架构网关位置
Spring Cloud 网关

模块说明

模块说明
base-service-api-gateway-core网关核心模块 定义网关统一模型和接口规范
base-service-api-gateway-dashboard网关管理控制台服务 对网关进行运维操作 例如:ak sk下发配置
base-service-api-gateway-limit网关限流操作模块 对API进行流量降级、熔断等控制
base-service-api-gateway-server网关服务 对外提供统一API
base-service-api-gateway-storage网关存储模块 定义实现网关相关的存储化功能 默认为数据库
base-service-api-gateway-storage-db网关存储模块 数据库实现
base-service-api-gateway-util网关工具模块 定义网关需要的特殊工具包

网关配置说明

  • 缓存配置说明
spring:
  cloud:
    gateway:
      cache:
        shouldUseReadOnlyServerCache: true #是否开启服务列表二级缓存配置 默认:开启
        serverCacheAutoExpirationInSeconds: 180 # 二级缓存服务列表缓存自动过期时间 默认: 180秒
        initialCapacityOfServerCache: 100 #初始化二级缓存列表大小 默认: 100
        serverCacheUpdateIntervalMs: 30000 #二级缓存更新一级缓存间隔时间 默认: 30秒
        skip: false #是否跳过缓存 默认:false不跳过
  • 签名配置说明
spring:
  cloud:
    gateway:
      app:
        appId: X-GW-APPID #AppID定义的名称 默认:X-GW-APPID
        timestamp: X-GW-Timestamp #时间戳定义的名称 默认:X-GW-Timestamp
        sign: X-GW-SIGN # Sign定义的字段名称 默认:X-GW-SIGN
        durationMt: 30000 #API接口间隔时间 默认: 默认5分钟 1000 * 60 * 5L
        skip: false #是否跳过签名校验 默认:false不跳过
  • 授权服务配置说明
spring:
  cloud:
    gateway:
      server:
        skip: false #是否跳过授权服务校验 默认:false不跳过

版本说明

版本修改内容说明
1.0.0第一次发布支持API参数校验;支持appId授权服务校验
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值