阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

认识微服务网关

110次阅读
没有评论

共计 1336 个字符,预计需要花费 4 分钟才能阅读完成。

1、认识微服务网关

1.1、什么是微服务网关

“ 网关 ” 它的功能也正如名字一样,具有关卡的作用。在单体应用中,调用服务极其简单。但在微服务中,调用服务就比较麻烦,因为不同的微服务可能使用了不同的开发语言和协议。在微服务生产环境中,用户调用微服务要经过网关。

1.2、为什么要使用微服务网关

认识微服务网关

从图中可以看出,网关统一向外部系统 (如访问者、服务) 提供 REST API。在 Spring Cloud,使用 Zull、Spring Cloud Gateway 等作为 API Gateway 来实现动态路由、监控、回退、安全等功能。

1.3、Spring Cloud Gateway

Spring Cloud Gateway 是 Spring Cloud 生态系统中的网关,旨在为微服务架构提供一种简单有效的、统一的 API,并为微服务架构提供安全、监控、指标和弹性等功能,其目标是替代 Zuul。

1.3.1、相关概念

Route(路由)

路由是网关的基本单元。它由一个 ID、一个目标 URI、一组断言 (Predicates) 和一组过滤器 (Filters) 来定义,即路由 =ID+URI+Predicates+Filters

Predicate(断言)

Predicate 的输入类型是 ServerWebExchange。ServerWebExchange 中包含 ServerHttpRequest,Predicate 根据输入决定是否匹配路由。

Filter(过滤器):

过滤器用于过滤并处理请求,类似于 Spring Web MVC 的 Web 过滤器。

1.3.2、Spring Cloud Gateway 的工作流程

认识微服务网关

工作流程:

1、客户端向 Spring Cloud Gateway 发出请求。

2、DispathcerHandler 接收用户请求。

3、RotePredicateHanderMapping 进行路由匹配

4、如果网关处理程序发现请求与路由匹配,则将请求发送到 FilteringWebHandler(即网关的处理程序)。如果网关发现请求与路由不匹配,则将请求返给 DispatcherHandler 处理。

5、FilteringWebHandler 通过特定过滤器发送请求,先执行所有 ”PRE 逻辑,然后进行代理请求,最后进行“POST”逻辑。

6、FilteringWebHandler 将请求转发到具体的服务中。

7、FilteringWebHandler 将处理结果返回给用户。

1.3.3、比较 Zuul 与 Spring Cloud Gateway

开源组织:

  • Spring Cloud Gateway 是 Spring Cloud 微服务平台的一个子项目,属于 Spring 开源社会

  • Zuul 是美国最大的视频点播服务商 Netflix 公司的开源项目

底层实现:

  • Zuul 1.x 构建于 Servlet2.5,兼容 3.x,使用阻塞式的 API,不支持长连接和 WebSockets

  • Spring Cloud Gateway 是基于 Spring Boot2.x 的,构建于 Spring 5 以上的版本,它使用非阻塞式的 API,支持 WebSockets

请求方式:

  • Zuul 1.x 采用的同步请求,数据被封装在 RequestContext 里

  • Spring Cloud Gateway 采用的是异步请求,数据被封装在 ServletWebExchange 里

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-06-06发表,共计1336字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中