Spring Cloud Finchley系列(一)Spring Cloud Gateway

本文介绍了Spring Cloud Finchley的最新特性,并深入探讨了Spring Cloud Gateway,作为Spring Cloud的API网关,它旨在替代Zuul。文章讨论了如何自定义GatewayFilter、全局过滤器GlobalFilter、请求限流过滤器RequestRateLimiter、权重路由WeightRoutePredicateFactory,以及Hystrix、LoadBalancerClient和DiscoveryClient的集成。同时,还提供了WebSocket路由和RouteLocator配置的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概述

1.关于Spring Cloud Finchley

  Spring Cloud Finchley是6月19日Spring官方正式发布GA版本,Finchley.Release支持了Spring Boot2.0,要求起步JDK8,支持JDK9,Finchley版本带了新的子项目,包括对原先版本的子项目的升级,原先支持的组件现在已经全部为2.0.0.Release,并且在官方的版本生命周期公告中说明,Camden release已经到了终止状态,Dalston release将于2018年12月结束,Edgware release将遵循Spring Boot 1.5.x系列的生命周期结束。Spring Boot2.0的新特性本文不再赘述,本文主要介绍Spring Cloud新的开源子项目Spring Cloud Gateway。

2.关于Spring Cloud Gateway

  Spring Cloud Gateway是由spring官方基于Spring5.0,Spring Boot2.0,Project Reactor等技术开发的网关,目的是代替原先版本中的Spring Cloud Netfilx Zuul,目前Netfilx已经开源了Zuul2.0,但Spring 没有考虑集成,而是推出了自己开发的Spring Cloud GateWay。该项目提供了一个构建在Spring Ecosystem之上的API网关,旨在提供一种简单而有效的途径来发送API,并向他们提供交叉关注点,例如:安全性,监控/指标和弹性.

二、实践

  以下将介绍Spring Cloud Gateway的一些重点功能和扩展方式,关于基础使用不再文中赘述,如有需要请查阅相关文档。

1.自定义GatewayFilter

  GatewayFiltery有两种类型的filter,分别为pre和post类型,以下提供一个demo的配置

  定义PreGatewayFilter:

public class PreGatewayFilterFactory extends AbstractGatewayFilterFactory {

      public PreGatewayFilterFactory() {
          super(Config.class);
      }

      public GatewayFilter apply() {
          return apply(o -> {
          });
      }
      @Override
      public GatewayFilter apply(Config config) {
          // grab configuration from Config object
          return (exchange, chain) -> {
              //If you want to build a "pre" filter you need to manipulate the
              //request before calling change.filter  ServerHttpRequest.Builder builder = exchange.getRequest().mutate();
              builder.header("GatewayFilter", "PreGatewayFilterFactory success");
              //use builder to manipulate the request
              return chain.filter(exchange.mutate().request(builder.build()).build());
          };
      }
        public static class Config {
            //Put the configuration properties for your filter here
      }
}

  定义PostGatewayFilter:

public class PostGatewayFilterFactory extends AbstractGatewayF
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值