Zuul、Gateway与Nginx的区别
文章目录
- 导言
- Nginx 和 网关 的区别
- 相同点:
- 不同点:
- Zuul 与 Gateway
- Zuul:
- Gateway:
- 相同点
- 不同点
- 总结
导言
首先Zuul、Gateway是一类,都是web servlet网关,处理的是http请求
而Nginx属于服务器web网关,处理的也是http请求
Nginx 和 网关 的区别
下面的网关都用Zuul替代,Nginx与Gateway也是大同小异
相同点:
可以实现负载均衡 (Zuul使用的是Ribbon实现负载均衡)
可以实现反向代理 (即隐藏真实ip地址)
可以过滤请求,实现网关的效果
不同点:
首先 , Nginx是C语言开发,而 Zuul 是Java语言开发
其次,Nginx负载均衡实现,采用服务器实现负载均衡,而Zuul负载均衡的实现是采用 Ribbon + Eureka 来实现本地负载均衡.
Nginx适合于服务器端负载均衡,Zuul适合微服务中实现网关
Nginx相比Zuul功能会更加强大,因为Nginx整合一些脚本语言( Nginx + lua )
Nginx 是一个高性能的HTTP 和反向代理服务器, 也是一个 IMAP / POP3 /SMIP 服务器.
Zuul是 Spring Cloud Netflix 中的开源的一个API Gateway 服务器,本质上是一个web servlet 应用, 提供动态路由,监控,弹性,安全等边缘服务的框架. Zuul 相当于是设备和Netflix 流应用的 Web 网站后端所有请求的前门
Zuul 与 Gateway
Zuul:
使用的是阻塞式的 API,不支持长连接,比如 websockets。
底层是servlet,Zuul处理的是http请求
没有提供异步支持,流控等均由hystrix支持。
依赖包spring-cloud-starter-netflix-zuul。
Gateway:
Spring Boot和Spring Webflux提供的Netty底层环境,不能和传统的Servlet容器一起使用,也不能打包成一个WAR包。
依赖spring-boot-starter-webflux和/ spring-cloud-starter-gateway
提供了异步支持,提供了抽象负载均衡,提供了抽象流控,并默认实现了RedisRateLimiter。
相同点
1、底层都是servlet
2、两者均是web网关,处理的是http请求
不同点
1、内部实现:
gateway对比zuul多依赖了spring-webflux,在spring的支持下,功能更强大,内部实现了限流、负载均衡等,扩展性也更强,但同时也限制了仅适合于Spring Cloud套件
zuul则可以扩展至其他微服务框架中,其内部没有实现限流、负载均衡等。
2、是否支持异步
zuul仅支持同步
gateway支持异步。
理论上gateway则更适合于提高系统吞吐量(但不一定能有更好的性能),最终性能还需要通过严密的压测来决定
3、框架设计的角度
gateway具有更好的扩展性,并且其已经发布了2.0.0的RELESE版本,稳定性也是非常好的
4、性能
gateway中的 WebFlux 模块的名称是 spring-webflux,名称中的 Flux 来源于 Reactor 中的类 Flux。Spring webflux 有一个全新的非堵塞的函数式 Reactive Web 框架,可以用来构建异步的、非堵塞的、事件驱动的服务,在伸缩性方面表现非常好。使用非阻塞API。 Websockets得到支持,并且由于它与Spring紧密集成,所以将会是一个更好的 开发 体验。
Zuul 1.x,是一个基于阻塞io的API Gateway。Zuul已经发布了Zuul 2.x,基于Netty,也是非阻塞的,支持长连接,但Spring Cloud暂时还没有整合计划。
总结
总的来说,在微服务架构,如果使用了Spring Cloud生态的基础组件,则Spring Cloud Gateway相比而言更加具备优势,单从流式编程+支持异步上就足以让开发者选择它了。
对于小型微服务架构或是复杂架构(不仅包括微服务应用还有其他非Spring Cloud服务节点),zuul也是一个不错的选择。
Zuul、Gateway与Nginx的区别相关推荐
- uWSGI 和 nginx 的区别?
uWSGI 和 nginx 的区别? (1 )uWSGI 是一个 Web 服务器,它实现了 WSGI 协议.uwsgi.http 等协议.Nginx 中HttpUwsgiModule 的作用是与 uW ...
- Java开源项目:saas小程序商城(SpringCloud + Oauth2.0 + ShiroRedis + JWT + Gateway + Nacos + Nginx+Vue+Mysql)
项目采用**SpringCloud **主流开源框架,,设计轻巧,使用简单,开发人员接手与二次开发简单易懂: 项目完成了对阿里云.腾讯云.微信生态的快速接入与代码示例,并成功运用到了商业中,方便大家学 ...
- F5与Nginx的区别
Linux的注意: F5与Nginx的区别 什么是Nginx: Nginx:高性能的 HTTP和反向代理服务器,同时支持作为IMAP/POP3/SMTP代理服务器.目前被很多网站应用为其HTTP软负载 ...
- 502 Bad Gateway:nginx错误解决
今天系统测试环境突然审批任务无法打开,直接报502 Bad Gateway:nginx,初步判断nginx出现了问题.然后登录系统中间件服务器,查看nginx,并没有挂掉. 看了看请求的url ...
- uwsgi模式_nginx+uwsgi 和nginx+gunicorn区别、如何部署
[线上环境部署Django,nginx+uwsgi 和nginx+gunicorn,这两种方案,应该如何选择?] 大家是采用的何种部署方式? 第一种,高并发稳定一点 我们公司使用的是nginx+gun ...
- 深入分析Nginx 502 Bad Gateway和Nginx 504 Gateway(亲测)
Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止. Nginx 504 Gateway ...
- 解决 502、504 Gateway Time-out(nginx)
504 Gateway Time-out问题常见于使用nginx作为web server的服务器的网站 我遇到这个问题是在升级discuz论坛的时候遇到的 一般看来, 这种情况可能是由于nginx默认 ...
- Apache和Nginx的区别
Nginx 轻量级,采用 C 进行编写,同样的 web 服务,会占用更少的内存及资源 抗并发,nginx 以 epoll and kqueue 作为开发模型,处理请求是异步非阻塞的,负载能力比 apa ...
- OpenFeign, Zuul, Gateway相互不兼容的问题总结
背景 项目中要把spring-boot 2.3.2版本升级到spring boot 2.6.2版本. 如果要升级spring boot 到2.6.2. 就必须要把spring cloud升级到2021 ...
最新文章
- 32位处理器是什么意思
- Entity Framework技术系列之1:数据访问技术概述
- 使用jquery获取url以及jquery获取url参数的方法
- Stanford UFLDL教程 深度网络概览
- 重磅!一文解读神策智能推荐
- PCIe学习笔记(15)--- TLP的ROUTING方式
- Oracle事务处理
- UWP平台Taglib编译(1)
- 牛客网 [编程题]数字和为sum的方法数
- day22:更换yum源及源码包安装
- Windows下安装Elasticsearch
- java多线程总结二(转)
- shell fork 阻塞进程_张三同学没答好「进程间通信」,被面试官挂了....
- win10的js文件-bat脚本-开启移动热点
- QT课程设计:C++英语单词记忆软件程序开发
- 2021年全球陶瓷基板收入大约409.7百万美元,预计2028年达到657.3百万美元
- python 语料_用python从语料库中提取最常用的词
- NOIP 2006 金明的预算方案 (裸?)分组背包
- /id_xndu5otm2mdq0.html,index.html
- android 电池运行时间计算,android 电池充电时间计算方法
热门文章
- Verge3D 2.12 for Blender发布
- 你不知道的nodejs性能优化
- uoj#311 【UNR #2】积劳成疾
- nexus 4 android 5.0,真是亲儿子 Nexus 4可升安卓5.1
- PG内核分析 Question and Answer
- 华为机试真题 Java 实现【不含 101 的数】【2022.11 Q4新题】
- 2022年11月多家权威机构____编程语言排行榜__薪酬状况
- 服务器中搭建OA系统,云服务器搭建oa系统
- mactxt文件如何转换成html,最佳的用于Mac上的PDF文件转换到HTML文件的转换器
- kaldi跑自己数据遇到的问题合集(持续更)