网关与Gateway

网关简介

        网关是系统唯一对外的入口,介于客户端与服务器端之间,用于对请求进行鉴权、限流、路由、监控等功能。

Gateway简介:(通过网关才能访问我们的系统)

Spring Cloud Gateway,这个项目提供了一个建立在spring生态系统之上的API网关,包括:spring6、springBoot3 和 project Reactor。Spring Cloud Gateway旨在提供一种简单而有效的方法来路由到api,并为他们提供跨领域的关注点,例如:安全性、监控/度量和弹性

Reactor 简介:

        Reactor 是一种完全基于 Reactive Streams 规范的、全新的库。

(1)响应式编程

        响应式编程,Reactive Programming,是一种新的编程范式、编程思想。

        响应式编程最早由 .Net平台上的 Reactive eXtension(Rx)库来实现。后来被迁移到了Java平台,产生了著名的 RxJava ,在此之上,后来又产生了Reactive Streams规范

(2)Reactive Streams

        Reactive Streams是响应式编程的规范,定义了响应式编程的相关接口,只要符合该规范的库,就称为 Reactive 响应式编程库

(3) RxJava2

        RxJava2是一个响应式编程库,产生于Reactive Streams规范之后。 但由于其是在RxJava基础之上进行的开发,所以在设计时不仅遵循了 Reactive Streams规范。同时为了兼容 Rxjava,使得RxJava2在使用时非常不方便

(4) Reactor
        Reactor是一种全新的响应式编程库,完全遵循 Reactive Streams规范,又与RxJava没有任何关系,所以,其使用时非常方便,直观。

         Zuul:是Netflix的开源API网关,Zuul是基于Servlet,使用 同步阻塞IO,不支持长连接,Zuul是SpringCloud 生态种的一员。

         Zuul2.x使用Netty实现了异步非阻塞IO,支持长连接,但其未整合到SpringCloud。

三个重要概念:

(1) route 路由

        路由是网关的最基本组成,由一个路由id、一个目标地址url,一组断言工厂及一组filter组成。若断言未true,则请求将经由filter被路由到目标url。

(2) predicate 断言

          断言即一个条件判断,根据当前的http请求进行指定规则的匹配,比如说http请求头,请求时间等。只有当匹配上规则时,断言才为true,此时请求才会被直接路由到目标地址(目标服务器),或先路由到某过滤器链,经过过滤器链的层层处理后,在路由到相应的目标地址(目标服务器)。

(3) filter过滤器

        对请求进行处理的逻辑部分。当请求的断言为true时,会被路由到设置好的过滤器,以及请求或响应进行处理,例如,可以为请求添加一个请求参数,或对请求URI进行修改,或为响应添加header等。总之,就是对请求或响应进行处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值