认识微服务网关
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里
相关文章
- 微服务(十)——GateWay新一代网关
- SpringCloud之服务网关Gateway[通俗易懂]
- 高性能微服务网关.NETCore客户端Kong.Net开源发布
- 浅说API网关与微服务框架(下)——微服务的黑长直初恋故事
- 将网关注册到”服务中心”,实现服务转发
- 腾讯云数智人亮相中国国际人工智能领袖峰会,数智人正服务于千行百业
- 一文学透微服务网关 Spring Clud Gateway 的用法
- Ingress-Nginx 服务暴露基础学习与实践
- Spring Cloud:第五章:Zuul服务网关
- 不会吧!还有人不懂微服务网关:Zuul的动态路由吗?我不理解
- 【第八篇】Camunda系列-网关服务
- 微服务架构开发实战:如何集成Zuul和实现API网关?
- springcloud微服务实战:服务网关,Gateway
- 微服务链路追踪有哪些_微服务网关原理
- 我的校园服务小程序_有创意校园的微信小程序
- 【鹅厂网事】高性能网关设备及服务实践
- 5分钟内将 Dubbo 服务接入 Istio 服务网格
- docker微服务简单打包部署
- 大白话揭秘搞好就能“年薪百万”的SpringCloud微服务
- SkeyeVSS综合安防视频云服务提供网页无插件直播、录像、检索、回放、报警综合解决方案
- SkeyeVSS国标视频融合云服务通过GBT28181协议管理智能计算网关、IPC、NVR上报智能分析告警预警信息
- 微服务网关的基础职能——路由
- 微服务架构下使用Spring Cloud Zuul作为网关将多个微服务整合到一个Swagger服务上详解架构师
- Spring Cloud(十):服务网关zuul详解编程语言
- Linux时间服务:提升系统性能的关键(linuxtime服务)
- 实现基于Linux的服务脚本自动化管理(linux服务脚本)
- Linux服务: 开创全新界面(linux服务界面)
- aOracle AS ISA:实现数据库服务的优势(oracleasis)
- 服务Linux操作系统安装SMTP邮件服务的指南(linux安装smtp)
- 器Cmd快速简易安装MySQL服务(cmd下载mysql服务)
- MySQL连接服务失败,如何解决(mysql不能连接服务)
- 获取Oracle代理商证书,实现业务服务再升级(oracle代理商证书)