Spring Cloud GateWay

一 问题

  1. 如果没有网关的话,假如说前端工程师要直接连接成百上千的微服务,如果后端给ip端口改了,前端还得跟着动.这样极大增加了前端的工作量.
  • API网关作用就是把各个服务对外提供的API汇聚起来,让外界看起来是一个统一的接口。同时也可在网关中提供额外的功能。
  • 分布式服务架构、微服务架构与 API 网关:
    在微服务架构里,服务的粒度被进一步细分,各个业务服务可以被独立的设计、开发、测试、部署和管理。这时,各个独立部署单元可以用不同的开发测试团队维护,可以使用不同的编程语言和技术平台进行设计,这就要求必须使用一种语言和平 台无关的服务协议作为各个单元间的通讯方式。
  1. 使用了网关的话,前端直接连接网关,然后根据网关的配置去Nacos里面获取对应的服务器地址去调用.
    前端只需要在前端代码里面配置网关的地址就行了,不管你后端怎么改服务的ip和端口,这样前端的工作量就大大的降低了.

总结:网关就是所有项目的一个统一入口。

二 介绍

Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。Spring Cloud Gateway作为Spring Cloud生态系中的网关,目标是替代ZUUL,其不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。

三 特性

Spring Cloud Gateway具有以下特性。

  1. 动态路由:能匹配任何请求属性
  2. 集成Hystrix的断路器功能
  3. 集成 Spring Cloud 服务发现功能(Nacos)
  4. 有 Predicate(断言)和 Filter(过滤器)功能,极易编写
  5. 请求限流功能
  6. 支持路径重写

四 核心概念

  • 断言(Predicate):参照 Java8 的新特性Predicate,允许开发人员匹配 HTTP 请求中的任何内容,比如请求头或请求参数,最后根据匹配结果返回一个布尔值。
  • 路由(route):由ID、目标URI、断言集合和过滤器集合组成。如果聚合断言结果为真,则转发到该路由。
  • 过滤器(filter):可以在返回请求之前或之后修改请求和响应的内容。

五 路由断言工厂

路由断言工厂描述
内置:

1.基于时间DateTime类型的断言工厂
2.基于Cookie的断言工厂
3.基于请求头的断言工厂
4.基于域名的断言工厂
5.基于请求方法的断言工厂
6.基于Path路径的断言工厂
7.基于请求参数的断言工厂
8.根据请求客户端Ip的断言工厂
9.根据权重

自定义路由断言工厂:

自定义路由断言工厂需要继承AbstractRoutePredicateFactory类,重写apply()方法的逻辑。在apply()方法中可以通过exchange.getRequest()拿到ServerHttpReqeust对象,从而可以获取到请求参数、请求方式、请求头等信息。

六 过滤器

过滤器描述

1 局部过滤器

内置:
在这里插入图片描述

自定义:

  1. 继承AbstractNameValueGatewayFilterFactory抽象类
  2. 自定义名称必须以GatewayFilterFactory结尾
  3. 还必须注册进spring容器中

2 全局过滤器

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值