Project Reactor 响应式编程的探索与实践

摘要

在前后端分离和服务化的环境下,通常需要一个API网关统一对接C端、B端和运营等前端项目。这个API网关的主要作用有两个:

一是为所有前端项目提供统一的入口,然后按照规则转发到后端服务上,之所以多一层转发,是因为服务化后的项目与前端是多对多的关系,一个前端项目可能会访问多个后端的项目,一个后端项目也可能对多个前端项目提供服务。

二是对所有的前端项目进行统一鉴权,鉴权后将用户ID写入请求头并转发给后端项目,所有的后端项目都是无会话状态的,只需要根据ID对外提供接口。

Spring Cloud Gateway 和 Netflix Zuul 都是这样一个API网关项目,能够按照业务规则实现请求的转发功能,也可以将统一鉴权很好的集成进去。最开始使用的 Zuul,和其他业务项目一样基于 Web Servlet 技术栈。随着 Spring 不断的升级,后来的项目也就从 Zuul 改成了 Spring Cloud Gateway。由于 Spring Cloud Gateway 构建在 Web Reactive技术栈之上,因此相关的业务就开始使用 WebFlux、WebClient 和 Reactor。

欢迎在评论区写下你对这篇文章的看法。

评论

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.134.0. UTC+08:00, 2024-09-28 22:16
浙ICP备14020137号-1 $Map of visitor$