常见提高Api性能的方法

分页(Pagination)

分页这个优化方式特别常见。目前有两种方式:

  1. 客户端指定每页的数量和当前第几页,服务端返回总页数和当前页的数据。

  2. 服务端把结果通过流式传输回客户端,以提高服务的响应速度。

分页描述

一般都是第一种方式,第二种方式在实际开发中很少用到。因为前者实现简单,后者还需要考虑流式传输和客户端的实时变动渲染。

异步日志记录(Asynchronous Logging)

同步日志处理每次调用都会涉及磁盘操作,可能会减慢系统速度。异步日志首先将日志发送到无锁缓冲区,然后立即返回。这些日志将定期刷新到磁盘上,从而显著减少了I/O开销。

异步日志描述

其实不只是日志可以运用,很多写入频繁且数据一致性要求不高的场景也可以使用该方式进行优化。比如可以将用户的操作记录到缓冲区,然后定期或异步刷新到数据库中。

缓存(Caching)

对于经常访问的数据,可以将其缓存到内存中,这样可以减少数据库的访问次数,提高系统的响应速度。

当缓存没有需要查询的数据时,可以通过数据库查询,然后将数据缓存到内存中。当缓存中有需要查询的数据时,直接从缓存中获取数据。

缓存描述

当然,这里可能会涉及到缓存和数据库一致性的问题,不过并不在本文讨论范围内。

载荷压缩(Payload Compression)

载荷压缩是一种减少网络流量的方法。它通过压缩数据来减少数据传输量,从而提高系统的响应速度。

载荷压缩描述

通常使用gzip等技术将请求体和响应体进行压缩,使得数据量减少,从而提高系统的响应速度。

连接池(Connection Pool)

在访问资源时,我们经常需要从数据库中加载数据。打开和关闭数据库连接会增加相当大的开销。因此,我们应该从一个连接池中来获取数据库连接。连接池负责管理连接的生命周期。

updatedupdated2024-01-082024-01-08