为什么有了Nginx还要有SpringCloudGateway?(也反问)

最开始的API网关是由Netflix推出的Zuul,然而随着时代的发展,由于各种原因,导致Zuul2.0难产且Zuul1.0不再维护。Spring组织在此时自己推出了自己的网关SpringCloudGateway且性能远超Zuul1.0。

为什么有Nginx还需要SpringCloudGateway?

SpringCloudGateway是一个从逻辑上更贴近服务侧,一般作为API网关,与项目更是一个整体。可以根据业务更可塑地进行网关逻辑的编写和调度。

同时在控制层上多加上统一的一层,有效地实现了统一鉴权,将鉴权这件事成功地从原来的代码逻辑中解耦出来。

那为什么有SpringCloudGateway还需要Nginx呢?

还有一个很重要的原因就是由于SpringCloudGateway是基于Java写的,性能上远不及Nginx,当流量还未被接收时一次性的涌入SpringCloud会直接被冲垮。Nginx作为老牌的服务器网关,底层是C++,性能上是绝对碾压SpringCloudGateway的存在,所以还需要前置的Nginx。(好像上K8S就可能也许大概不太需要了吧)

功能上,除了网关这个能力外,Nginx在很多情况下还充当静态资源服务器。

结论

所以从两个不同组件在网关服务的特性来看:

Nginx做四层LB(传输层负载均衡)

SpringGateway做七层LB(应用层负载均衡)

Nginx不再承担着服务的路由分发和负载均衡,转而使用SpringCloudGateway做更专业的事,是解耦的一种表现,两种网关的出现是架构在进化中对服务进一步细分的体现。

v2ex.com
V2EX上的一些讨论

NGINX 做 SSL 消除,响应压缩,多网关 LB
还要做一些静态页面或资源的服务——qwerthhusn

四层负载均衡和七层负载均衡

——关于套娃的后端技术——

个人博客

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值