# guerlab-cloud-gateway **Repository Path**: GetOver/guerlab-cloud-gateway ## Basic Information - **Project Name**: guerlab-cloud-gateway - **Description**: 基于Spring Cloud Gateway提供扩展支持,增加了调用耗时、路径保护、版本控制、sentinel限流集成 - **Primary Language**: Java - **License**: LGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-05-12 - **Last Updated**: 2023-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Guerlab Cloud Gateway ![](https://img.shields.io/badge/LICENSE-LGPL--3.0-brightgreen.svg) ![](https://img.shields.io/maven-central/v/net.guerlab.cloud.gateway/guerlab-cloud-gateway.svg) 基于Spring Cloud Gateway提供扩展支持,增加了调用耗时、路径保护、负载均衡增强、sentinel限流集成 ## 注册中心与配置中心 - 注册中心: nacos - 配置中心: nacos ## 扩展模块 ### 1 调用耗时 启用后记录每一次请求的方法、路径、耗时 #### 1.1 增加配置 ```yaml spring: cloud: gateway: logger: enable-record-request-time: true ##使用启用调用耗时记录 ``` #### 1.2 设置日志级别 ```yaml logger: level: net.guerlab.cloud.gateway.logger: DEBUG ##日志级别需要调整为DEBUG才会打印日志 ``` ### 2 端口保护 启用后根据匹配规则进行路径过滤,对满足保护要求的请求将在网关处直接进行拦截,避免后端服务api的访问暴露 #### 2.1 配置内容 ```yaml spring: cloud: gateway: protect: enable: true ##是否启用路径保护 release-header-name: RELEASE-HEADER-NAME ##放行请求头,注意大小写匹配 release-header-value: RELEASE-HEADER-VALUE ##放行请求头值,注意大小写匹配 urls: - method: POST ##请求方法 path: /**/aoo/** ##待保护的路径,使用ant风格进行匹配 ``` ### 3 负载均衡增强 #### 3.1 配置内容 ```yaml spring: cloud: loadbalancer: allow-rule-reduce: true ##是否允许规则降级.当允许的时候规则处理返回了空或空集合的时,使用规则处理链返回上一个有效集合. no-match-return-empty: false ##未匹配的时候返回空可用服务集合 policy: roundRobin ##负载均衡选择策略,目前仅支持轮训(roundRobin)/加权随机(randomWithWeight)/随机(random) cluster-same: enable: true ##相同集群匹配 order: 0 ##优先级 version-control: enable: true ##是否启用版本控制匹配 order: 0 ##优先级 request-key: version ##请求头关键字 metadata-key: request-version-control ##服务元信息关键字 ``` #### 版本控制元信息数据格式 具体匹配信息可参考 [WIKI](https://gitee.com/guerlab_net/guerlab-cloud/wikis/pages/preview?sort_id=4318063&doc_id=1566307) 或 测试类 [VersionCompareUtilsTest](https://gitee.com/guerlab_net/guerlab-cloud/blob/master/guerlab-cloud-loadbalancer/src/test/java/net/guerlab/cloud/loadbalancer/utils/VersionCompareUtilsTest.java)