NGINX实时API手册完整版_第1页
NGINX实时API手册完整版_第2页
NGINX实时API手册完整版_第3页
NGINX实时API手册完整版_第4页
NGINX实时API手册完整版_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

前 实时API如何影响我们的生 API是良好数字体验的连接组 “实时”是什么意思?小于30毫 实时体验需要实时 实时API的日常用 NGINX是实时API基础架构的牢固基 NGINX、KongAmazonAPI它们能否实时交付 API管理解决方案比 基准测试概 结果:NGINXVS.KONG 结果:NGINXVS.KONGCLOUD和AMAZONAPI 经过验证,NGINX是唯一的实时API解决方 实时API参考架 实时API参考架 实时API网关特征和架构指 NGINX可提供哪些帮助 您的API是实时的吗 使用NGINX的rtapi工具测试API延 运行 解读PDF报 NGINX可提供哪些帮助 实时API实 关于实时API,您有什么想说的 API在提供数字体验方面发挥着核心作用。无论您是在外卖应用上点餐还是通过银行的移动应用进行在线支付,API都是确保最终成功的关键软件组件。根据ProgrammableWeb(一个基API的新闻和信息的主要来源,包含一个用于Web和移动应用的\hAPI目录)的统计,在过去几年中,APIAPI168API。实际上,根据\hAkamai《互联网安全状况报告》,API占所有Web流量的83%。APIAPIAPI响API事务正日益API性能会导致糟糕的最终用户体验。如果您的品牌被贴上质APIAPI的重要性。本文首先结合具体示例简述了API在我们日常生活中所发挥的作用,然后介绍了不同API管理解决方案的性能基准测试结果,最后介绍了NGINX开发的参考架构以及可用于衡量API性能的工具。我们的客户和潜在APIDevOps工程师、应用开发人员、API架构师、API产品所有者以及基础设施与运营团队的网络工程师。他们告诉我们,此类信NGINXAPI专业人员提供有力支持。\hNGINX软件为超过4.5亿个网站提供支持,并且201947NGINXPlus(35NGINXOpenSource)用户已经在使用NGINX作为API网关。NGINX还是许多传统API管理解决方案中的一个常用组件,为Axway、Kong、MuleSoft、RedHat3Scale等提供基础网关。我们开发了一种完全创新的API管理解决方案,该解决方案具备卓越性能,在数据平面(NGINXPlus作为API网关)和控制平面(NGINX控制器API管理模块)之间不存在运行时依赖性。这可以通过缩短对API调用的平均响应时间,降低复杂性并最大限度地提升性能。我们真诚地希望这本电子书能让您有所收获,助您顺利开启APIAPIDanielF5APIAPI前几天的一次外出就餐让我切身体会到了API的重要性。让我来解释一下为了到达就餐地点,我使用智能手机的应用叫了一辆出租车。想必大多数人对这个流程都不陌在等待司机前来接载期间,地图会实时更新显示正朝您驶来的汽车的位置。但是那一天,我的应用没有更新地图。没等五分钟,我就感到烦躁不安,因为我不知道司机是否已经在来的路上,甚至怀疑是否有司机接了我的单。10分钟后,我感到沮丧至极,就切换到了另一款打车应用!这次很成功,我能够实时看到司机正朝着我的位置驶来。最终我顺利乘车,并提前几分钟到达了就餐地点。实时信息对于当今的数字体

我最近去了旧金山的一家\hAmazonGo商店。体验简直太棒了!将Go应用下载到手机后,用没有延误,也没有收银员。这是何等轻松便捷的实体店购物体验啊!AmazonGo是如何做到API就打车应用而言,如果能实时跟踪接单车辆的位置,则可以带来一些无形的好处—它可以让就AmazonGo商店而言,整个体验都基于实时处理:您一进店,便能立即识别您,并访问您的信用卡,因此即使您抓起一件东西就跑出店,也会被扣费。当您拿起或更换货架上的商品时,Go应用会自动计费,因此不等您离开商店,总价格就计算出来了。您甚至都无需拿出钱包(想想糟糕的体验:在您前面排队的人一直四处张望,等他的商品都算好价并打好包后,他才开始翻背包找钱包)。如果发生任何处理延迟,这种无缝的购物体验都会受到干扰,这样的话您不如沿着街区去逛传统商店了。因如此,Uber和Amazon等公司在确保客户能实时检索信息方面投入了巨资。实际上,Uber依靠GoogleMaps为司机导航,并为乘客提供实时信息。Uber为实现这一价值付出了什么?在两年的时间内,他们共向\hGoogle支付了5,800万美元。研究表明,实时必须小于

30明,实时必须小于30毫秒(ms)。人眼处理图像仅需13毫秒。根据麻省理工学院神经科学家的一项研究,人眼处理和识别整个图像\h仅需13毫秒。研究人员要求受试者识别6到12张图像,同时每幅图像的呈现13801320毫秒同步视频。IEEE一份有关使用\h媒体指纹技术防止在传递视频内容时出现图像和声音不同步的文章指出,容许的延迟极限在6到20毫秒之间。30毫秒传输无线数据。5G技术的引入,无处不在的连接即将实现,这有望\h将峰值速\h率提升到1Gbps,并将延迟控制在30毫秒内。为什么会有如此低的延迟呢?因为5G只有这么快才能取代光纤和电缆调制解调器等家庭WiFi和有线宽带。时间不得超过30毫秒,有时甚至需要低至13毫秒。APIAPI调用的时间必须在30毫秒内,直到第99百分位为止(这意味着只有百分之一的调用用时超过30毫秒)。如欲了解APIAPI连接。UberAPI调用检索GoogleMapAPI调用将店内Go基础设施与传感器、视觉和分析功能相连接。实时体验在很大程度上依赖于实时API调用。

显而易见,实时体验在很大程度上依赖于实时API调用。这意味着您的API30API6毫秒!这可能听起来不难,但细想一下,API基础设施必须:路由API。确保API使用者(例如您的打车应用)正确定向到正确的后端资源(如地图验证API。API使用者是否是允许访问该后端资源的有效用户?您必须对用户进行身份保护API。如今,加密已成为不可或缺的一环。API是通往您最关键的应用资本的门户,调度API。API调用都平等无差别。您需要通过一种方式来调度流量以避免资源争用,提供适当的带宽并确定某些API调用的优先级。API。APIAPI响应是提高性API定义为:30APIAPIAPI基础设施定义为:能够在不到30毫秒的时间内路由、验证、保护、调度和缓存API的技术。APIAPI为什么需要实时API:我们都使用过聊天应用。如今,聊天似乎已成为许多企业首选的客户服需要对第三方聊天工具或机器人进行API调用。如果没有实时API,您的业务会受何影响:聊天应用的低延迟是决定客户体验的一个关键因素。如果没有实时API调用,您的客户满意度就会降低,这可能会影响您的收入并降低您的净推荐值(NPS)。为什么需要实时API:金融服务部门在销售点采用欺诈检测技术来监控信用卡交易。这些企业如果没有实时API,您的业务会受何影响:您的持卡人可能拥有一张以上的信用卡。如果您的API来防止客户使用他为什么需要实时API:物联网正以惊人的速度改变我们的生活!下面让我举几个在日常生活中使用API且必须实时完成的示例:智能家居:Alexa或Siri提供支持的家庭自动化设备\hAPI,您的业务会受何影响:API会妨碍对创新服务的采用,例如语音提供变革性体验需要高性能\h

提供变革性体验需要高性能\hAPI管理解决方案。\hNGINX为超过4.5亿个网站提供支持,根据201947NIGNXPlus(35NGINX开源)用户已经在使NGINXAPIAPINGINX用作关键组件的解决方案,例如Axway、Kong、MuleSoft、RedHat3Scale等传统API管理提为什么NGINX是所有这些API基础设施的基础?我们观察到NGINX处理API306APINGINX、KongAmazonAPINGINX、KongAmazonAPI管理解决方案进行基准测试:它们能否实时交付API?速度—这在当今数字环境中尤为重要,如果您应用的性能太慢,消费者会毫不犹豫地选择您APIAPI响应能力的关键因素之一就是API网关引入的延迟。但是,并非所有API网关都在同一级别上运行。这点让我想起去年秋天,一位NGINX客户(消费信贷行业的一家知名公司)告诉我们,随着越来越多的应用和其他组件需要彼此通信以提供用户期望的数字体验,“实时”API性能的重要性正日益提高。我们很高兴得知NGINXPlus是唯一能实现客户所需的超短API延迟(低至10毫秒)的API网关。其他许多客户,例如\hCapitalOne,也与我们分享了如何通过使用NGINXOpenSource或NGINXPlus作为API网关来缩短延迟和提高吞吐量。APIAPI“实时”意味着什么。基于大量因素,我们最终确定在每个百分下,APIAPI调用的时间必须在30毫秒内,直到第99百分位为止(这意味着只有百分之一的调用用时超过30毫秒)。APIAPI并进行全生命周期管理和监控时,通过我们的APIAPI\hNGINXPlusAPI调用API\hNGINXAPI管理模块NGINXPlusAPI。API,而其他

但是我们知道,仅凭我们的一面之词,可能很难取信于您。因此,我们委托独立技术研究和分析公司\hGigaOm对我们的API管理解决方案和市场上的其他流行解决方案进行了客观透明的基准测试,这包括两款类似NGINX的可部署在本地或云中的解决方案\hApigee*和\hKong\he\hnAPIGatewaygd。在本章中,我们概述了GigaOm的测试结果(最佳表现者:NGINXPlus在每种测试条件下均能实时提供API,而其他解决方案则不能)。有关解决方案、测试方法和结果的全部详情,请\h下载免费的GigaOm报告。*注意:Apigee最终用户许可协议(EULA)禁止未经Google明确许可发布测试结果,因此很遗憾,该报告和本章中均未包含有关Apigee的信息。GigaOm使用\hVegetaHTTP负载测试工具生成请求(API调用),(RPS)下API网关引入的延迟,即将响应返回给API调用所花费的时间,GigaOm将RPS称为“攻击速率”。GigaOm在从1,000到5,000、10,000、20,000及更高RPS的攻击速率Vegeta603次。如下图所示,GigaOm捕获了在50、90、95、99、99.9和99.99百分位下的延迟,并且还记GigaOm进行了两次基准测试,对NGINXPlus(使用NGINX控制器部署)和Kong(使用KongEnterprise部署)进行了比较。在第一次基准测试中,只有一个工作节点(一个NGINXPlus或KongNode实例)。在第二次基准测试中,3个工作节点由NGINXOpenSource通过轮询调度算法进行负载均衡。(GigaOmNGINX开源作为负载均衡器并不会给NGINXPlus带来优势,甚至Kong建议将其用作集群Kong实例的负载均衡器。)迟是NGINX的两倍或三倍。

如下图所示,在第99百分位之前,NGINX和Kong之间的延迟差异可以忽略不计,但之后Kong的延迟开始呈指数增长。在两次基准测试中,在第99百分位下,Kong的延迟均为NGINX的两倍或三倍。API在每个百分位下,直到第99百分位为止都能保持低延迟才能被定义为实时,但GigaOm指出,在实际部署中,在更高的百分位(99.999.99)下保持低延迟“极其重要”。该这些停顿关系重大。如果响应时间或延迟的中位数小于30毫秒,但存在1顿,则实际上会对后续用户体验产生累积影响。例如,如果您开车去一家快餐店,平均等餐时间为分钟,您可能会认为这还是一种不错的客户体验。但是,如果您前面的客户订单出现问题,需要分钟才能解决,那会怎样?这意味着您的等餐时间实际上是1199.99在高百分位下,超长延迟带来的负面影响在分布式应用中会变得更加明显,因为在此类应用API调用。例如,假设1个客户端请求创建了对子系统的10个API调用,发生缓慢响应的概率为1%。缓慢响应影响1个客户端请求的概率在10%左右,这点从数学上可以证明。有关详细信息,请参阅\h谁动了我第99百分位的\h延迟?图1描述了在单个工作节点和30,000RPS攻击速率下的结果。在第99.99百分位,Kong的NGINX3API30毫秒的阈值。相比之下,NGINXPlus在每个百分位下均实现了实时延迟,其最高记录的(最大)延迟仅有13毫秒,还不到实时阈值图1:在单节点和30,000RPS下的控制器和Kong

延迟(毫秒延迟(毫秒

NGINX控制 Enterprise 资料来源:GigaOm,2020图2显示了在三个工作节点下,同样也是在30,000RPS9999.9百分位下,KongNGINX99.99百分位再次经NGINX的两倍。与第一个基准测试一样,NGINX在所有百分位均保持小于30毫秒的实时阈值。图2:在三节点和30,000RPS下的控制器和Kong

延迟(毫秒延迟(毫秒 NGINX控制 Enterprise 资料来源:GigaOm,2020API网关性能的另一种方法是,利用单节点和三节点配置,确定在百分百成功(5xx或图3显示了根据此测量方法,NGINX支持比Kong高出50%的RPS:30,000VS.20,000。图

攻击速率攻击速率NGINX Kong资料来源:GigaOm,2020在第三组基准测试中,GigaOmNGINXPlusKongCloudAmazonAPIGateway进行了比较。GigaOm强调,直接比较存在很大问题,因为KongCloudAmazonAPIGateway是完全托管的SaaS产品,而NGINX控制器是PaaS产品,目前不作为SaaS提供。特别是,这两种SaaS产品都无法揭示其使用的实例类型、运算能力、内存或网络功能。因此,GigaOm必须就与NGINXPlus相当的设置做出最佳猜测。实际上,即使不与NGINXPlus进行比较,也能轻松发现,SaaS产品在任何测试百分位下均无法实时提供API,即便在图4所示的第二低攻击速率(5,000RPS)下也是如此。在第百分位下,SaaS产品的延迟就已超过30毫秒阈值的7倍;而在第99.99百分位下,它比该阈值高出8000%以上。显而易见,在任何情况下,KongCloud或AmazonAPIGateway都无法百分百保证小于30毫秒的延迟。图4:在单节点和在5,000RPS下的控制器、KongCloudAmazonAPI

延迟(毫秒延迟(毫秒 NGINX控制 KongCloud AmazonAPIGateway 资料来源:GigaOm,2020NGINXGigaOm测试

总而言之,NGINX是业经GigaOmAPI处理标准的解决方案,在每个百分位下的延迟均小于30毫秒。KongEnterprise在第99百分位获得了实时性能,但在较高的API处理的生产环境。测试中的SaaS解决方案均不能被归类为实时。GigaOm报告证实了我们以前的基准测试结果以及客户向我们提供的反馈。NGINXPlus是市API网关,并且是唯一能够在所有百分位下都保持小于30API解决方案。而且,如果将其与NGINX控制器搭配使用,您将可以访问具有独特架构的API管理解决方案,在这种情况下,通过精心的去耦合,API管理控制平面(NGINX控制器)不会对API网关数据平面(NGINXPlus)的性能产生任何影响。在这里,我们只是概述了GigaOm报告的主要结果。如欲了解全部细节,请\h免费下载完整\h报告。APIAPIAPI在我们日常生活中的重要作用。随着企业寻求提升在数字时代的竞争力,API成为了重要的IT和业务资源。构建正确的底层基础设施不仅可以确保APIAPIAPI标准,即30毫秒(ms)内端到端处理API调用。APIAPI网关,以及控制平面,后者包括策略和开发APIAPI网关。APIAPI流量的代理,是APIAPI调用、将请求路由到正确的后端、应用速率限制以防APIAPI网关架构的主要特征?以及您如何部署API网关?围绕我们几家最大最严苛的

本章将为您解答这些问题,并提供一个基于NGINX围绕我们几家最大最严苛的客户所做的工APIAPI管理解决方案进行了全面描述,并深入介绍了负责确保满足实时性能阈值的API网关。APIAPIAPI网关API流量。这是实时架构中最关键API策略服务器。一个解耦的服务器,用于配置API网关以及提供API生命周期管理API安全服务Web应用防火墙(WAF)API网关内置API身份服务。一项独立的服务,为身份和访问管理设置身份验证和授权策略,并与DevOps工具APICI/CDAPIAPI用户、API端点以及路由器、交换机、虚拟机和容器们不再赘述。我们将重点介绍对创建全面实时API架构来说必不可少的上述六个组件。5:解耦架构将数据平面(API网关)APIAPIAPIAPIAPIAPI当部署在微服务架构中时,API网关的功能包括请求路由、身份验证、TLS终止、速率限制和APIAPI的应用的流量。为有API流量,需要在集群的前端部署一个负载均衡器。负载均衡器根据位置(接近客户端应用)或处理API的能力来选择API网关。API网关会将请求转发给后端。为了获得最佳性能,请实施下方《实时API网关特征和架构指南》中详细介绍的最佳实践。API这是控制平面,允许开发人员和DevOps团队定义、发布和保护API,并允许IT运营团队监控和分析API。API策略服务器可用于配置到后端服务的请求路由,并配置细粒度的访问控制API的访问权限(例如只读和读写)以及允许使用资源的用户或客此外,APIAPIAPI网关。为了获得实时性APIAPI网关数据平面完全分离(6)。如果数据平面APIAPIAPI调用将需要经过此控制平面(在某些情况下经过关联数据库),这会因额外开API的开发人员快速入门。开发人员门户(或开发门户)提供了所有已发APIAPI的文档以及示例代码。为了提高性能和可用性,开发人员门户与控制平面分离开来,并分别托管在各自的Web服务器上。分布式开发人员门户允许多个实例跨不解耦,因此不会影响API调用的处理效率。APIAPI安全通常需要使用高级Web应用防火墙(WAF)来检测各种攻击。它必须提供高可信签名,并且能够避免由于JSON格式错误、空请求或不符合gRPC协议的请求而出现的漏洞。API安全防护,包括路径执行、方法执行、数据类型验证和完整模式验证。该APIAPIAPIAPI许多组织还部署了API欺诈检测组件,以更深入地了解API调用的逻辑,从而确定其是否为API网关或WAF层中进行请务必注意,APIAPIAPI性能阈值30毫秒。我们建议组织评估API安全与绝对性能哪个更为重要。我们之所以在该参考架构中引入API安全是为了提供边缘或外围安全设备可能无法提供的API特定防护。APIAPI和后端资源。我们推荐的最佳实践是与领先的身份管理提供商(例如\hOkta和\hPingIdentity)相集成,以确保对API的安全访问。这些解决方案支持DevOps必须提供声明式API接口以实现全面的API生命周期管理,包括创建、发布、网关配置和监API和更改网关配置。通过与自动化平台(Ansible)和CI/CD工具箱(例如Jenkins)无缝集成,可以加快API的发布速度。API调用处理性能,但对于确保加速变更以及作为开发过程中的一部分至关重要。如果发生会影响性能的问题,例如DDoS攻击或API客户端配置错APINGINX与来自金融服务、零售、娱乐和软件行业的一些大型组织合作为其构建了API架构。这些客户已扩展到每月处理数千亿次API调用,并且所有调用的延迟均不到30毫秒。通过与这些客户的合作,我们总结了以下六个API网关最佳实践,它们是我们实时API参考架构的APIAPI网关集群来提高可授权需要进行额外处理(通常使用JSONWeb令牌(JWT)),以确定客户端是否有权访问API调用本身的后端服务执行授权,因为它具有关于请求的必要上下文。API网关将授权委派给后端业务逻辑层后,无需再执行查找操作,因此可缩短响应时间。API网关仍然可以执行此功能,但可能会影响实在网关中预配置身份验证信息(无论使用API密钥还是JWT)可以极大地减少运行时的额外API调用由包含多个微服务的后端处理。其中一个微服务,我们称之为微服务A,用于执行数据库查找。当数据库查找失败时,AAPIAPIAPI\h数据转换(例如将XML格式的请求有效负载转换为JSON)往往需要大量的计算。我们可将此工作分配给另一项服务。在API网关执行转换会大幅增加API调用的延迟。gRPC是Google推出的一个现代开源远程程序调用框架。因其\h广泛的语言支持和简单的设计受到越来越多用户的欢迎。gRPC依赖于\h协议缓冲区,Google称之为“用于序列化结构化数gRPCHTTP/2作为传输协议,因此它自动继承了HTTP/2的所有优点,例如数据压缩和TCP连接上的多路复用请求。多路复用技术允许客户端和服务器通过单个TCP连接并行发送多个请求和响应。HTTP/2还支持服务器推NGINXPlusAPI高可用性集群,允许\h共享状态信息APIJWT进行\h身份验证NGINXPlus键值存储中的\h内存SSL/TLS证书存储APIJWT\h高性能也是NGINXAPI管理解决方案的一个基本特性。与传统API管理解决方案不同,NGINXAPI管理解决方案的数据平面(\hNGINXPlus作为API网关)对控制平面(\hNGINX控\hAPI管理模块)API调用必须跨数据库、模块和脚本,因此紧密耦API调\hNGINXAppProtect是一种可提供企业级安全性的DevOps友好型WAFAPI网关和负载均衡器提供安全防护。NGINXPlus作为多合一负载均衡器、反向代理和API网关,可确NGINXAPINGINXRESTAPIITOPS/DEVNGINXAPINGINXRESTAPIITOPS/DEVAPIAPIAPI的响应能力、运行状况和

API是现代应用和日益演进的数字架构的核心。\hAkamai《互联网现状安全报告》,API调用占所有Web流量的83%。在当今环境下,消费者很容易转向您的数字竞争对手,因此为他API的响应能力、运行API的速度就会超过竞争对手,并成为开发人员根据IDC报告\h《API—数字企业成败的决定性因素》,超过90%的组织期望延迟小于50毫秒(ms),而近60%的组织期望延迟小于20毫秒。(APIAPI调用所需的时间,即从请求到达API网关到响应的第一个字节返回客户端的用时。)API生命周期的一些端到端分析,对API进行了定义:实时API是指延迟等于或小于30毫秒的API。此外,对于所处理的请求,必须在每个百分位下始终保持30毫秒的延迟阈值,直到第99百分位为止(30毫秒)。如欲了解详细信息,请参见第二章对于大多数企业而言,特别是将架构复杂的API网关用作API端点入口点的企业,想要尽可能实时处理API调用非常困难。您的API是否满足实时API要求?其速度是否满足实时标准API延迟如何?\hrtapiNGINXAPIAPI网关和端点的的PDF和包含详细指标的ASCII格式表。GitHubrtapiGolang$$goget如果您尚未安装Golang,请导航至\h/nginxinc/rtapi/releases,下载适用于您使用JSON或YAML格式(如以下示例所示)API端点(目标)。我们建议将JSON或YAML保存在名为endpoints.json或endpoints.yml的文件中。(对于JSON,您还可以在下一步中将rtapi命令行中的数据作为--data标志的参target.url和target.methodtarget.body和target.header,则它们将保持为空。如果您未在query_parameters对象中指定参数,则rtapi将使用(默认)值,如以下示例所示。JSON"target":"url":"\h","method":"POST","body":"{\"id\":\"0\"}","header":{"Content-Type":["query_parameters":{"threads":2,"max_threads":"connections":10,"duration":"10s","request_rate":500 url:\h/api/idmethod:POSTbody:'{"id":"0"}'Content--application/jsonthreads:max_threads:connections:12duration:10srequest_rate:500运行以下命令,其中--file为包含JSON/YAML格式的API端点列表的文件,--output为rtapi要生成的PDF报告。(如步骤2所述,您可以在命令行上提供JSON输入:将--fileendpoints.json--

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论