栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

1.5 spring cloud gateway(已经取代zuul),网关,现成产品。

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

1.5 spring cloud gateway(已经取代zuul),网关,现成产品。

 1.5.1:Route:根据Predicate判断是否该路线处理,处理过程中需经过过滤器Filter集合(过滤器有pre前置和post后置方式);

        1:cookie匹配方式,可选java正则表达式;

        2:某时间前、后、之间三种方式;

        3:根据请求头匹配:- Header=X-Request-Id, d+;

        4:根据host匹配: Host=**.xueleyun.com,{sub}.xueleyun.com,sub具体的值可以在后续的过滤器获取使用;

        5:Method方式:- Method=GET,POST

        6:Path方式:- Path=/member/{segment},/circle/{segment} ,segment可以在后续的过滤器获取使用

        7:url参数方式:- Query=green,{值表达式可选},Post方式应该不支持,暂无需求不深究;

        8:来源ip方式:- RemoteAddr=192.168.1.1/24,ip默认通过XForwardedRemoteAddressResolver获取请求头X-Forwarded-For方式获取,暂不确定使用场景不深入研究;

        9:weight route:权重分组,- Weight=group1, 8;

        1.5.2 Filter:在某route下增加过滤器链

        1:增加请求头:

filters:
        - AddRequestHeader=X-Request-red, blue

请求头可以带上url参数或路径,即route上面定义的{segment};

        2:增加请求参数:- AddRequestParameter=foo, bar-{segment};

        3:增加响应头:- AddResponseHeader=X-Response-Red, Blue-{segment};

        4:重复请求头合并: - DedupeResponseHeader=Access-Control-Allow-Credentials Access-Control-Allow-Origin,默认保留第一个;

        5:断路器:- CircuitBreaker=myCircuitBreaker,断路器规则需另外研究:Spring Cloud Circuit Breaker

        6:断路器失败后回调FallbackHeaders过滤器,和5断路器过滤器配合使用;

        7: 请求头转换:- MapRequestHeader=Blue, X-Request-Red,将发起方的请求头Blue=abc转成X-Request-Red=abc;

        8:路径前缀:- PrefixPath=/mypath,比如url为/hello 到后面的服务会变成 /mypath/hello

        9:- PreserveHostHeader:保持客户端的Host信息不变;

        10:RequestRateLimiter:速度限制过滤器,定义了一些方式,具体要依赖实现方如:Redis RequestRateLimiter:依赖spring-boot-starter-data-redis-reactive

- name: RequestRateLimiter
          args:
            redis-rate-limiter.replenishRate: 10
            redis-rate-limiter.burstCapacity: 20
            redis-rate-limiter.requestedTokens: 1

        代表一秒内最多20个请求,在同一时刻最多10个请求,最后一个参数代表时间维度,如果是60,则代表60秒内可以最多20个请求;

        rate-limiter和key-resolver都可以通过bean方式指定如:#{@myRateLimiter};

   11:重定向:

- RedirectTo=302, https://acme.org

        某服务返回302状态码,则跳转到配置的地址;

        12:删除请求头:

- RemoveRequestHeader=X-Request-Foo

        13:删除响应头:

- RemoveResponseHeader=X-Response-Foo

        14:删除响应参数:

- RemoveRequestParameter=red

       15:重写路径:

 RewritePath=/red/?(?.*), /${segment}

        待补充:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/678750.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号