当前位置: 首页 > 科技观察

说说如何提高API的性能

时间:2023-03-18 14:24:08 科技观察

一个好的设计一定要兼顾API的性能。如果API不能响应越来越多的请求,不能满足不断变化的业务需求,不能按预期运行,再好的设计也是白搭。无意义的。那么一个API的性能如何呢?与任何性能一样,API性能在很大程度上取决于API如何响应它接收到的不同类型的请求。示例:我们有一个显示客户当前订单的客户端应用程序。应用程序从API获取订单详细信息。但是现在,客户说他们想查看所有订单。所以我们建立了一个“我的订单”页面,显示所有客户的订单。这意味着我们的API将返回比以前更多的数据,并承受比以前更大的负载。如何保证我们的API能够返回所有数据,不会出现延迟、服务端错误、请求过多等问题?以下是一些性能提升的最佳实践:1.缩小和限制负载大小当传输大量数据时,不可避免地会导致API性能下降,最直接的方法是减少负载(负载)传输应用程序接口。我们可以使用GZip压缩来减少负载的大小,我们可以在WebAPI上使用Deflate压缩。或者,我们可以将Accept-Encoding标头更新为gzip。2.启用缓存缓存是提高API性能最简单的方法之一。如果我们的请求是针对相同的API,那么该响应的缓存版本有助于避免额外的服务调用或数据库查询。在使用缓存时,需要选择合适的缓存淘汰算法,当有新数据更新时及时更新缓存。3.提供足够的网络带宽即使采用最稳健的API设计,缓慢的网络也会降低性能。不可靠的网络会导致停机,通过投资适当的网络基础设施可以相对简单地解决这个问题,这样我们就可以保持所需的性能水平。此外,如果您有很多后台进程,请在单独的线程上运行它们以避免阻塞请求。镜像和CDN也可用于在全球不同地区更快地处理请求。4.限速,防止恶意攻击API可能会受到DDoS攻击,可能是恶意的、有意的,也可能是工程师调用API在某些本地应用的循环中执行时有意为之。这可以通过测量每个IP地址或每个SSO/JWT令牌每秒的交易和监控调用来避免,从而阻止恶意请求。这种速率限制方法有助于减少对API的过多请求,并主动监控和识别可能的恶意活动。5.尝试使用PATCH工程师们普遍认为PUT和PATCH操作会产生相同的结果。它们更新资源的方式相似,但执行更新的方式不同:PUT操作通过将更新发送到整个资源来更新资源。PATCH操作仅对需要更新的资源应用部分更新。因此PATCH调用会产生更少的负载并显着提高性能。然而,尽管PATCH调用可以限制请求大小,但应该注意它不是幂等的。PATCH可以通过一系列的多次调用产生不同的结果。因此,您应该慎重考虑您的应用程序是否使用PATCH请求,并确保它们在需要时是幂等的。如果没有,请使用PUT请求。6.启用日志记录、监控和警报如果您应该从本文中学到一件事,那就是它!日志记录、监控和警报是API中最重要的部分,无一例外。拥有日志、监控和警报有助于工程师在问题发生之前诊断和修复问题。许多API(基于Express/Node、Java、Go)都有预定义的接口来评估以下内容:在一个特定的请求地方。如果不启用监控,则无法从分析角度了解某些问题或错误发生的频率。这不利于做出合理的解决。而且,如果没有启用警报,在客户(或更糟的是,客户)报告之前,不会知道是否存在问题。这更严重了!7、当数据量大的时候,分页是一个很好的策略,但是分页并不是灵丹妙药,数据量大的时候还是会很慢。一个好的策略是只显示前100页,几乎没有人会滚动超过第100页。最后,前后端分离是常态。对于后端开发来说,最重要的是设计一个强大的API,适当的优化和提升API的性能,可以非常强大,为企业和客户提供优秀的体验。作为负责任的工程??师,我们有责任决定如何以高效的方式构建我们的API,以帮助我们实现并超越我们的目标。本文转载自微信公众号“Python7号”,可通过以下二维码关注。转载本文请联系Python七号公众号。