一文速通Nginx网关与gateway网关区分

news2024/9/27 7:19:49

目录

API网关介绍 

gateway基本介绍

Nginx基本介绍

Nginx与API gateway网关


API网关介绍 

网关的角色是作为一个 API 架构,用来保护、增强和控制对于 API 服务的访问。API 网关是一个处于应用程序或服务(提供 REST API 接口服务)之前的系统,用来管理授权、访问控制和流量限制等,这样 REST API 接口服务就被 API 网关保护起来,对所有的调用者透明。因此,隐藏在 API 网关后面的业务系统就可以专注于创建和管理服务,而不用去处理这些策略性的基础设施。

API 网关负责请求路由、API组合和协议转换。来自外部客户端的所有API请求首先会先转到API网关,后者再将请求路由到相应的服务。API网关使用API组合模式处理其他请求,调用多个服务并聚合结果。同时他还可以在客户端友好的协议(例如HTTP)与客户端不友好的协议之间进行转换。

总结:网关就是所有项的一个统一入口。 

网关 = 路由转发 + 过滤器。

路由转发:接收外界请求,通过网关的路由转发,转发到后端的服务上。

过滤器:分为Gateway FilIer和Global Filter。Filter可以对请求和响应进行处理。默认支持的过滤器有:AddRequestHeader请求头,AddRequestParameter请求参数、RequestRateLimiter限流、Hystrix熔断、Retry重试等20多种过滤器,也支持自定义过滤器。

gateway基本介绍

Spring Cloud Gateway是一个基于Spring Framework 5,Spring Boot 2和Project Reactor等技术构建的网关服务器,用于为微服务应用程序提供路由、负载均衡、安全性、限流、降级等功能。

SpringCloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Zuul,在Spring Cloud 2.0以上版本中,没有对新版本的Zuul 2.0以上最新高性能版本进行集成,仍然还是使用的Zuul 2.0之前的非Reactor模式的老版本。而为了提升网关的性能,SpringCloud Gateway是基于WebFlux框架实现的,而WebFlux框架底层则使用了高性能的Reactor模式通信框架Netty

SpringCloudGateway : 微服务网关,事项微服务的统一路由,统一鉴权,跨域,限流等功能 

Nginx基本介绍

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。

Nginx相比其他Web服务器软件的优点如下:

  1. 高性能:Nginx采用异步、非阻塞的事件驱动模型,可以支持高并发请求,并且消耗较少的系统资源。
  2. 轻量级:Nginx的二进制文件很小,可以快速启动并占用较少的内存。
  3. 可靠性高:Nginx的代码被设计为高可靠性的,可以在长时间运行中保持稳定性。
  4. 可扩展性好:Nginx可以通过添加第三方模块或编写自定义模块来扩展其功能。
  5. 支持热部署:Nginx可以在不停止服务的情况下重新加载配置文件和动态模块。

Nginx与API gateway网关

本质上API网关也是做了请求的转发,那既然Nginx也可以做请求转发,那这两者有什么区别?

在具体架构设计时Nginx做负载均衡时,考虑到API网关在系统中不止一个(以集群的方式做高可用),通常可以将Nginx至于API网关前,负责对API网关的负载均衡,然后再由网关决定进入根据判定到哪个真实的web 服务器。 让两者的分工更加明确,也就是:API网关聚合服务,Nginx请求转发 

业务网关(gateway):对于具体的后端业务应用或者是服务和业务有一定关联性的策略网关。业务网关针对具体的业务需要提供特定的流控策略、缓存策略、鉴权认证策略

流量网关(Nginx):与业务网关相反,定义全局性的、跟具体的后端业务应用和服务完全无关的策略网关。流量网关通常只专注于全局的Api管理策略,比如全局流量监控、日志记录、全局限流、黑白名单控制、接入请求到业务系统的负载均衡等

业务网关一般部署在流量网关之后、业务系统之前,比流量网关更靠近业务系统。通常API网指的是业务网关。 有时候我们也会模糊流量网关和业务网关,让一个网关承担所有的工作,所以这两者之间并没有严格的界线。

nginx与gateway的区别:

  • nginx是用C语言写的,自定义扩展的话,要么写C要么写lua
  • gateway是java语言的一个框架,可以在框架上进行代码的扩展与控制,例如:安全控制,统一异常处理,XXS,SQL注入等;权限控制,黑白名单,性能监控,日志打印等;
  • gateway的主要功能有,路由,断言,过滤器,利用它的这些特性,可以做流控。
  • nginx做网关,更多的是做总流量入口,反向代理,负载均衡等,还可以用来做web服务器。

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

  • 反向代理
  • 负载均衡

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1130728.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

创建 Edge 浏览器扩展教程(上)

创建 Edge 浏览器扩展教程(上) 介绍开始之前后续步骤开始之前1:创建清单 .json 文件2 :添加图标3:打开默认弹出对话框 介绍 在如今日益数字化的时代,浏览器插件在提升用户体验、增加功能以及改善工作流程方…

Spring Authorization Server 1.1 扩展 OAuth2 密码模式与 Spring Cloud Gateway 整合实战

目录 前言无图无真相创建数据库授权服务器maven 依赖application.yml授权服务器配置AuthorizationServierConfigDefaultSecutiryConfig 密码模式扩展PasswordAuthenticationTokenPasswordAuthenticationConverterPasswordAuthenticationProvider JWT 自定义字段自定义认证响应认…

【AI视野·今日Robot 机器人论文速览 第五十八期】Thu, 19 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Thu, 19 Oct 2023 Totally 25 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers InViG: Benchmarking Interactive Visual Grounding with 500K Human-Robot Interactions Authors Hanbo Zhang, Jie Xu, Yuch…

『heqingchun-Qt的艺术-优雅界面设计开发』

Qt的艺术-优雅界面设计开发 效果图 一、新建Qt窗口工程 二、准备资源文件 1.图标资源 链接: 图标资源 2.Qss资源 链接: Qss资源 三、设计开发 项目源码链接: CSDN资源

随机生成一个指定边数多边形

随机生成一个指定边数多边形 算法背景:我们想完成一个可以随机生成指定边数多边形的算法。在生成过程中,需要避免随机点连接过程中交叉的问题。 算法步骤   1、为了随机生成一个n边形,我们先随机生成n个点。例如下图,我们随机生…

AI Chatbot 对企业降低人力成本和提高竞争力的作用

随着人工智能技术的发展,越来越多的企业开始尝试将AI ChatBot引入到业务中。AI Chatbot是一种基于人工智能技术的智能对话机器人。它可以模拟人类对话,通过自然语言处理和机器学习算法来理解和回答用户的问题,可以帮助企业降低成本和提高效率…

ExoPlayer架构详解与源码分析(7)——SampleQueue

系列文章目录 ExoPlayer架构详解与源码分析(1)——前言 ExoPlayer架构详解与源码分析(2)——Player ExoPlayer架构详解与源码分析(3)——Timeline ExoPlayer架构详解与源码分析(4)—…

上海亚商投顾:沪指放量反弹 两市超4500股飘红

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 三大指数昨日集体反弹,深成指、创业板指盘中涨超1%,黄白二线大幅分化,题材…

视频配音软件有哪些?推荐几款好用的视频配音软件

视频配音软件有哪些?推荐几款好用的视频配音软件 不知道大家有没有这样的体会,我们在观看视频作品的时候,如果没有声音,就会少了很多韵味和可供思索的空间,相反,好的配音可以为作品增色,一句台…

docker 搭建 flink 并上传任务

文章目录 一、docker 搭建 flink1、选择合适的 flink 版本2、重新创建 JobManager、TaskManager 容器并挂载配置文件 二、flink 简单示例1、创建项目架构2、批处理简单示例3、流处理简单示例4、上传 flink 集群①、UI 界面提交任务②、命令提交任务 5、web-ui 提交查看撤销任务…

区块链技术与应用 【全国职业院校技能大赛国赛题目解析】第五套区块链系统部署与运维

第五套区块链系统部署与运维题目 环境 : ubuntu20 fisco : 2.8.0 子任务1-2-1: 登陆Linux服务器,安装并部署下图所示的单机、四机构、三群组、八节点的星形组网拓扑区块链系统,具体工作内容如下 此题在官网有例子如图: 每个机构拥有两个节点,机构A属于中心,属于群组1,…

Linux文件系统 struct dentry 结构体解析

文章目录 前言一、目录项简介二、struct dentry2.1 简介2.2 dentry和inode关联2.3 目录项状态2.4 目录项特点 三、dentry cache3.1 简介3.2 dentry cache 初始化3.3 dentry cache 查看 四、dentry与mount、file的关联五、其他参考资料 前言 这两篇文章介绍了: VFS 之 struct f…

10月26日,起立LG新品首发第五代OLED透明显示屏

“聚力蓝海显示屏,合作共赢”,10月26号14:30分,起立携手LG于德金会展国际酒店,对起立自主研发新品第五代OLED透明显示屏首发,欢迎各大商业人士莅临参与,一起挖掘显示屏在当下内卷泛滥的时代新商机。 一、央…

微信小程序设计之主体文件app-wxss/less

一、新建一个项目 首先,下载微信小程序开发工具,具体下载方式可以参考文章《微信小程序开发者工具下载》。 然后,注册小程序账号,具体注册方法,可以参考文章《微信小程序个人账号申请和配置详细教程》。 在得到了测…

JDK JVM JRE和Java API的关系

Java SE 英文全称是Java Standared Edition,它是Java的标准版。 Java SE由四部分组成:JDK JVM JRE和Java语言。 1.JDK Java Development Kit Java开发工具包。包含了所有编译,运行Java程序所需要的工具,还包含了Java运行环境&a…

不开源项目aspose.cells最新版23.10的一些科普

1.基本介绍 日常工作中我们常常会使用到Excel来做一些事情,也常常需要使用代码程序来解析Excel文件,目前来说对于poi、easypoi、easyexcel、jxls的使用已经非常多了,它们都在一些特定情况下很好的去处理Excel文件,但有些时候我们…

ElasticSearch:实现高效数据搜索与分析的利器!项目中如何应用落地,让我带你实操指南。

1.难点解答 收集到几个问题: elasticsearch是单独建一个项目,作为全文搜索使用,还是直接在项目中直接用? ES 服务器是要单独部署的,你可以把 ES 理解为 Redis。 新增数据时,插入到mysql中,需不…

基于SSM的幼儿园管理系统

基于SSM的幼儿园管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatis工具:IDEA/Ecilpse、Navicat、Maven 系统展示 登录界面 管理员界面 摘要 基于SSM(Spring、Spring MVC、MyBatis&#…

python 之输入、输出的简单介绍

文章目录 输入输出 输入 在Python中,您可以使用input()函数来接收用户的输入。input()函数会等待用户输入,并将输入的内容以字符串的形式返回给您。以下是一个简单的示例: user_input input("请输入您的姓名: ") # 提示用户输入…

asp.net网上商城系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio协同过滤设计

一、源码特点 asp.net网上商城系统是一套完善的web设计管理系统系统采用协同过滤算法进行商品推荐,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库 为sqlserver2008,使用c#语言开发 ASP…