开发者学堂课程【全面讲解 Spring Cloud Alibaba 技术栈(知识精讲+项目实战)第三阶段:Springcloud getaway 介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/685/detail/11886
Springcloud getaway 介绍
内容介绍:
一、引言
二、优缺点介绍
一、引言
我们了解了 API 网关所处的一个位置是在客户端和我们的微服务之间,第一个它可以屏蔽掉我们微服务内部的一个结构,第二个是他可以作为客户端的一个代理,访问我们的微服务。
那么我们可以使用 API 网关,实现一些公共的逻辑功能。比如说我们可以在这里做认证,可以做鉴权,可以做跨域的处理,甚至还可以做网络限流。
只要我们跟具体的服务没有逻辑关系,就都可以放在这里。我们还介绍了在业界比较流行的网关。
例如 Ngnix+lua,他是根具体语言没有关系的,还有基于他开发的一个 kong,还有一个是基于 spring cloud 的一系列的 zuul,为了替换掉性能比较差的 zuul,又开发了 Spring cloud getaway,这个是 spring 官方给我们推荐的。
spring cloud alibaba 是没有单独的网关的,所以我们借用的网关就是spring cloud getaway,所以 API 网关里我们就可以添加 gateway。
二、优缺点介绍
Spring cloud getaway 基于 spring 5.0 Spring boot 2.0和 project reactor 等技术开发的网关,这里的 project reactor 是一个编程,他只在为微服务架构提供一种简单有效的,统一的 API 路由管理方式,他的目标是替换。
Netflix zuul,其不仅提供统一的路由方式,并且基于 filter 链的方式提供了网关基本的功能,例如: 安全、监控和限流。
优点:
性能强劲,是第一代网关 zuul 的1.6倍
功能强大,内置了很多实用的功能,例如转发、监控,限流。
设计优雅,容易扩展。
缺点:
其实现依赖 netty 与 wenflux(了解即可),不是传统的 servlet 编程模型,学习成本高。
不能将其部署在 tomact,jetty 等 servlet 容器里,只能打包成 jar 包执行。
需要 spring boot 2.0及以上的版本才支持。
因为一系列使用的是 zuul,第二代才支持了 gateway,基于 Spring boot 2.0.开发。