简述API(电商数据API)网关的概念和功能

API 网关 ( API gateway )

前言
在 IOT ( 物联网 )中,当我们的一些设备。例如( 监控、传感器等 )需要将收集到的数据和信息进行汇总时,我们就需要一个 API。(如果你需要Taobao/JD/pinduoduo平台开放API接口,点*击 *免*测*试)网关来接收从千百个终端发出的请求,它实现对外统一接口,对内进行负载均衡的功能。极大的方便了 API系统 的开发与维护。如果有需要,API
 网关也可以根据各终端使用的不同通信协议来进行协议适配,从而方便应用层进行数据采集和分析。

 

什么是 API 网关?
在想了解什么是API 网关 ( API Gateway ),首先我们需要了解什么是微服务。

微服务

 微服务是一种用于构建应用的架构方案。微服务架构有别于更为传统的单体式方案,可将应用拆分成多个核心功能。每个功能都被称为一项服务,可以单独构建和部署,这意味着各项服务在工作(和出现故障)时不会相互影响。

我们依靠下面几个阶段来简单的了解一下,什么是微服务。

一、单机阶段 ( 所有服务一把梭 )

在一个项目的起步阶段,我们可能会把所有的功能放在一个项目内( 例如商城系统 )这样方便快速开发与迭代。

 

 

二、拓展阶段 ( 水平、垂直拓展 )

随着你公司的业务越来越大,服务越来越广,你将开始考虑进行水平或垂直拓展了。

 水平拓展:简单说就是将服务放到多台机器上进行负载均衡。
 垂直拓展:简单说就是提升单台服务器的性能( 俗称氪金 )
 
三、微服务阶段 ( 对服务进行拆分 )
当你的公司变得更大,开发人员也变得多而杂。项目也随着时间变得特别臃肿的时候。你就需要将服务进行拆分,人员按照服务类型进行分组。

 

 例如商城系统,可以分为 用户系统、交易系统、商品系统等等。

为什么要有API 网关?
我们已经了解了什么是微服务。那么为什么微服务要有API 网关呢?

疯狂的客户端 ( Mad client )
哈哈,开个玩笑的标题。

如果不使用 API 网关,那么你将会立马面临一个棘手的问题。


如图所示,当你有三个服务( 服务1、服务2、服务3 )时,如果没有API 网关,你的客户端就需要记住每个微服务的地址。

 当你有几十个微服务时,相信我,你的前端一定会把你杀了的。

当然,Api 网关可不仅仅有路由的功能。

API 网关可以干什么?
下面我们来简单捋一捋 API 网关都可以做啥吧。

 统一入口 : 也就是刚才说的路由功能,API 网关可以通过内部维护路由表来进行反向代理。
 


  什么是反向代理,什么是正向代理。
 场景1 ( 正向代理 ) :你们公司有内部网络限制,但是你想登陆公司内部网站处理一些业务。由于你无法直接登陆,所以你需要一个中继代理,通过一个中继的代理服务器来转发你的请求到内部服务器。进行信息交流。
 
 场景2 ( 反向代理 ):你想访问一个网站,例如 “www.moudu.com”,当你输入这个网址时,某度的网关会将你的请求进行路由到别的服务器上处理。
 由此可见一个简单的规则就是:当你知道中继服务器和最终目的的地址时为正向代理,当你知道中继服务地址而不知道目的服务的地址时为反向代理。


 安全 : 由于统一个入口,你可以将所有服务的权限、黑名单等涉及身份验证的部分放在网关统一处理。
 
 限流 : 可以基于流量计算分析和限流规则对访问微服务的请求进行限流。
 
 缓存 : 对一些静态数据等进行缓存。
 
 日志 : 可以通过日志系统对所有的请求和响应进行记录,便于日后分析。
 
 监控 : 基于日志系统获取的请求响应数据、时间等进行实时性能监控。
 
 重试 : 对于异常请求进行重试。
 
 熔断 : 对一些故障服务进行服务降级。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Replicator简介

Replicator 文章目录 ReplicatorReplicator简介合成数据训练背后的理论Replicator核心组件已知的问题 Replicator简介 Omniverse Replicator 是一个高度可扩展的框架,构建在可扩展的 Omniverse 平台上,可生成物理上准确的 3D 合成数据,以加速…

OpenAI-ChatGPT最新官方接口《语音智能转文本》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(六)(附源码)

Speech to text 语音智能转文本 Introduction 导言Quickstart 快速开始Transcriptions 转录python代码cURL代码 Translations 翻译python代码cURL代码 Supported languages 支持的语言Longer inputs 长文件输入Prompting 提示其它资料下载 Speech to text 语音转文本 Learn how…

Mac配置QT

Mac配置QT 前言: 系统版本:Ventura 13.2.1 (22D68) 先安装homebrew,参考: https://blog.csdn.net/ZCC361571217/article/details/127333754 Mac配置: 安装Qt与Qt Creator: 通过Homebrew安装(若没Homeb…

用Spring Doc代替Swagger

1 OpenApi OpenApi 是一个业界的 API 文档标准,是一个规范,这个规范目前有两大实现,分别是: SpringFoxSpringDoc 其中 SpringFox 其实也就是我们之前所说的 Swagger,SpringDoc 则是我们今天要说的内容。 OpenApi 就…

【Python_Scrapy学习笔记(十三)】基于Scrapy框架的图片管道实现图片抓取

基于Scrapy框架的图片管道实现图片抓取 前言 本文中介绍 如何基于 Scrapy 框架的图片管道实现图片抓取,并以抓取 360 图片为例进行展示。 正文 1、Scrapy框架抓取图片原理 利用 Scrapy 框架提供的图片管道类 ImagesPipeline 抓取页面图片,在使用时需…

快速部署个人-ChatGPT Next Web

前提:要有梯子、谷歌账号。 目录 一、源码地址: 二、演示地址: 三、获取API密钥 四、 部署 五、重新部署 一、源码地址: GitHub - Yidadaa/ChatGPT-Next-Web: One-Click to deploy well-designed ChatGPT web UI on Verc…

批量给TXT文档插入带标题合成图片-Chatgpt生成TXT文档配图神器

1、我们用《Chatgpt 3.5-turbo软件》批量生成txt文档,但是这样txt文档里不带图片,直接发布到网站上,光有文字没有图片,效果也不是很理想,就需要一款配图软件。 2、提高文章的可读性和吸引力:插入图片可以丰…

JavaSE学习进阶day06_04 集合的嵌套和不可变集合

接昨天讲的内容,今天还要继续学习集合。学完今天的内容,集合就告于段落了,坚持! 集合的嵌套(掌握!): 什么是集合的嵌套?为什么要集合的嵌套?为了搞清楚这个…

免费英文在线翻译-英文自动翻译

免费的自动翻译器 作为一款免费的自动翻译器,我们的产品可以为全球用户提供高质量、高效率的翻译服务,帮助他们更好地沟通和交流。 现在,随着数字化的进一步发展,人们之间的跨文化交流越来越频繁。然而,语言偏差和文…

学习小程序基础内容之逻辑交互

我们先来看一下实现的效果。 然后再来分享结构。 结构分为左右3:7 分配, 左侧是类别,右侧是该类别对应的品牌。 后台会在onload的请求把左侧的类别返回来,然后我们通过循环把数据展示出来。然后通过点击事件,把对应的品牌请求回来…

CentOS 8自动化安装MongoDB并安装和实验master-slave集群、副本集群(Replica Set)、分片集群(Sharding)

文章目录 CentOS 8自动化安装MongoDB安装Master-Slave集群安装并测试副本集(Replica Set)集群安装副本集(Replica Set)集群实验测试 安装并测试分片集群(Sharding) 注意实验使用的是ARM架构的CentOS 8 虚拟机 CentOS 8自动化安装MongoDB 首先&#xff0…

【单片机】基于Arduino cli和VS Code配置开发环境,彻底抛弃Arduino IDE

文章目录 0 前言1 VS Code的优势和Arduino IDE的劣势2 前期准备3 Arduino cli3.1 Arduino cli是什么3.2 下载与安装3.3 基本使用3.4 开发环境配置 4 VS Code配置5 参考链接 0 前言 之前有在电脑上基于VS Code配置Arduino环境,大致方法就是在安装Arduino IDE的前提下…

linux网络

查看网络接口信息 ifconfig mtu 最大传输单元 mtu和mss区别 hostname命令 永久修改 hostnamectl set-hostname 切换shell环境生效 或者vi hostname 编辑完重启生效 查看路由表条目route route查看或设置主机中路由表信息 route -n将路由记录中的地址信息显示为数字形式 …

Linux查看串行端口

查看串口驱动 cat /proc/tty/driver/serial查看串口设备 dmesg | grep ttyS*[rootlocalhost driver]# cat /proc/tty/driver/serial serinfo:1.0 driver revision: 0: uart:16550A port:000003F8 irq:4 tx:0 rx:0 1: uart:16550A port:000002F8 irq:3 tx:0 rx:0 CTS|DSR|CD 2:…

Hadoop之HBase

文章目录 一、HBase简介二、HBase结构1.1HBase逻辑结构1.2HBase物理结构1.3HBase基础架构 三、HBase安装配置3.1单机模式3.2集群搭建 四、HBase JAVA API 一、HBase简介 《HBase官方文档》的原文地址是:http://hbase.apache.org/book.html W3Cschool.cn进行整理翻译…

上位机:创建WPF应用并使用控件完成控件交互

创建WPF应用并使用控件完成控件交互 1.XAML是WPF技术中专门用于设计UI的语言。 2.优点,XAML是一种声明型语言,只能用来声明一些UI元素、绘制UI和动画,不能在其中加入程序逻辑。实现UI与逻辑的剥离。 下面使用visual studio2019建立一个WPF项目: 进入项目,点击运行,然后…

今天面了个字节跳动拿35K出来的,真是砂纸擦屁股,给我露了一手啊

今年的金三银四已经快要结束了,很多小伙伴收获不错,拿到了心仪的 offer。 各大论坛和社区里也看见不少小伙伴慷慨地分享了常见的面试题和八股文,为此咱这里也统一做一次大整理和大归类,这也算是划重点了。 俗话说得好&#xff0c…

一次小破站JS代码审计出XSS漏洞思路学习

今天看了小破站一个大佬的分析,感觉思路很有意思,感兴趣的xdm可以到大佬视频下提供的链接进行测试(传送门)这类社交平台的XSS漏洞利用起来其实危害是特别大的,利用XSS能在社交平台上呈现蠕虫式的扩散,大部分…

电脑C盘被格式化 如何快速将被删的数据文件恢复找回?

如今的互联网时代,不管是办公还是休闲,一般都喜欢在电脑上进行操作,尤其是办公,感觉有了电脑能轻松不少,可以将一些工作中的重要数据保存在电脑里面,那么电脑里面的数据真就很安全了吗?这个就让…

c/c++:二维数组,数组的行数和列数求法sizeof,数组初始化不同形式,5个学生,3门功课,求学生总成绩和功课总成绩

c/c:二维数组,数组的行数和列数求法sizeof,数组初始化不同形式,5个学生,3门功课,求学生总成绩和功课总成绩 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人&#x…