Zuul和spring-cloud-gateway的区别


前言

首先Zuul和gateway都属于微服务网关,微服务网关是微服务架构的一个重要组件,且微服务网关还有其他的选择
:目前主流的为nginx,zuul以及gateway,其中nginx与zuul和gateway最为不同.
nginx基于c语言开发,这里暂且不谈,zuul和gateway则基于java语言开发的。


一、微服务网关的作用

在这里插入图片描述
1,动态路由:将请求转发给合适的服务器
2,隐藏内部结构
3,协议适配
4,其他功能:缓存,日志,黑白名单,限流,认证,安全性,监控等等。

二、zuul和gateway的区别

1.外在区别

spring-cloud-Gateway是spring-cloud的一个子项目。而zuul则是netflix公司的项目,只是spring将zuul集成在spring-cloud中使用而已。

2.本质区别

Zuul:
1.使用的是阻塞式的 API,不支持长连接,比如 websockets
2.底层是servlet,Zuul处理的是http请求
3.没有提供异步支持,流控等均由hystrix支持
4.依赖包spring-cloud-starter-netflix-zuul

Gateway:
1.使用非阻塞API,Websockets被支持,并且由于它与Spring紧密集成,因此提供了更好的开发人员体验
2.依赖spring-boot-starter-webflux和/ spring-cloud-starter-gateway
3.提供了异步支持,提供了抽象负载均衡,提供了抽象流控,并默认实现了RedisRateLimiter

阻塞与非阻塞

两者都主要灌注:程序在等待调用结果(消息,返回值)时的状态。
阻塞式:阻塞时,在调用结果返回前,当前线程会被挂起,并在得到结果之后返回。
非阻塞式:如果不能立刻得到结果,则该调用者不会阻塞当前线程。因此对应非阻塞的情况,调用者需要定时轮询查看处理状态。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐