Nginx和SpringGateway区别

负载均衡

Nginx是流量网关。(还可以做动静分离)

流量网关通常只专注于全局的Api管理策略,比如全局流量监控、日志记录、全局限流、黑白名单控制、接入请求到业务系统的负载均衡等,有点类似防火墙。Kong 就是典型的流量网关。

Gateway是业务网关。

业务网关针对具体的业务需要提供特定的流控策略、缓存策略、鉴权认证策略等等。

业务网关一般部署在流量网关之后、业务系统之前,比流量网关更靠近业务系统。

通常API网关指的是业务网关。 有时候我们也会模糊流量网关和业务网关,让一个网关承担所有的工作,所以这两者之间并没有严格的界线。

下图是一个工程中Nginx先将客户端的请求负载均衡到SpringGateway,然后SpringGateway再通过服务发现,将请求负载均衡到各个业务微服务上。

image-20211208220150632

Nginx在其中扮演的角色是什么?

  • 反向代理
  • 负载均衡

SpringGateway在其中扮演的角色是什么?

  • 统一鉴权
  • 负载均衡
  • 服务发现

动静分离

在我们的软件开发中,有些请求是需要后台处理的(如:.jsp,.do等等),有些请求是不需要经过后台处理的(如:css、html、jpg、js等等文件),这些不需要经过后台处理的文件称为静态文件,否则动态文件。在我们对资源的响应速度有要求的时候,我们应该使用这种动静分离的策略去解决。

如下图,在动静分离时,静态资源部署在Nginx服务器上,动态资源部署在业务微服务集群上。

image-20211208214725501

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐