共计 1188 个字符,预计需要花费 3 分钟才能阅读完成。
微服务 网关服务
网关服务是微服务体系里面重要的一环。
微服务体系内,各个服务之间都会有通用的功能比如说:鉴权、安全、监控、日志、服务调度转发。这些都是可以单独抽象出来做一个服务来处理。所以微服务网关应运而生。其主要作用作为微服务体系里面流量的唯一入口去做一些功能的实现。
微服务的网关担当的主要职责可以分为俩种
- 主要业务功能抽取,鉴权、安全、服务调度、限流、熔断等
- 非主要的业务功能抽取,监控、日志、缓存、黑白名单、埋点等
Spring Cloud 网关服务
现在市面主要流行的俩种
Netflix Zuul 1.0
- 由 Netflix 开源的 API 网关项目,这个服务并不是 Netflix 集成到 spring 微服务体系内。而是 spring 将 zuul 集成在 spring-cloud 中使用而已。目前 spring 不打算集成 zuul2.x 的集成。
Spring Cloud Gataway
- spring-cloud-Gateway 是 spring 旗下 spring-cloud 的一个子项目。还有一种说法是因为 zuul2 连续跳票和 zuul1 的性能表现不是很理想,所以催生了 spring 孵化 Gateway 项目。
前面介绍了俩种网关服务由来,接下来进行一下性能的对比我不打算在做压力测试方向更多的介绍,博主没有做压力测试的条件。我讲推荐一篇博文进行了压测的详细的对比传送门
Spring Cloud Gateway
- 是基于 WebFlux 开发的。WebFlux 模块的名称是 spring-webflux,名称中的 Flux 来源于 Reactor 中的类 Flux。Spring webflux 有一个全新的非堵塞的函数式 Reactive Web 框架,可以用来构建异步的、非堵塞的、事件驱动的服务,在伸缩性方面表现非常好。使用非阻塞 API。Websockets 得到支持,Spring 集成
Netflix Zuul 1.0
- 底层是基于 servlet,Zuul 处理的是 http 请求 Zuul 的抽象写的非常简单易懂,易于扩展,易于 debug。提供了两种特殊的抽象类,用户使用起来,比较灵活。没有提供异步支持。流控等均由 hystrix 支持
备注
其实 Netflix Zuul 1.0 调优过后的性能指标并不见得比 Spring Cloud Gateway 差基本上也符合理论上的数据。
只不过 2.0 之后。spring 没有打算集成它。如果现有系统已经使用的 zuul 服务。不需要非得升级 zuul 升级到 Spring Cloud Gateway。如果公司项目。希望 Websockets 得到支持就可以考虑是否升级。
我打算将俩种网关都实现。下一篇文章是 Zuul 网关的实现。里面会讲述一些关键点。写完 zuul 网关后。再去写股关于 Spring Cloud Gateway 的 实现。
如何喜欢可以关注分享本公众号。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。转载请附带公众号二维码
正文完