同步/异步 API17 Mar 2025 | 6 分钟阅读 应用程序编程接口(API)对于促进各种软件结构或组件之间的通信至关重要。API 允许您通过与客户端和服务器协作来执行复杂的业务操作。它们允许应用程序与后端服务器服务进行接口。为此,通常使用几种通信通道,通常分为同步和异步。 异步和同步架构是创建管理多个组件或系统之间通信和处理的系统的两种技术。理解这些架构之间的区别对于创建和实现能够满足特定应用程序的独特需求的高效且有效的系统至关重要。 ![]() 同步 API在同步 API 设计中,客户端向服务器提交一个请求,服务器随后会立即响应客户端。在收到响应之前,客户端必须完全等待服务器处理该请求。这表明客户端和服务器之间的数据流是同步的,并且客户端必须在执行任何其他操作之前等待响应。 它们使用 SOAP、REST 等传统协议。这些 API 同步处理查询。因此,在继续应用程序之前,客户端必须等待 API 的响应。它们无法同时处理两个请求。因此,如果一个请求花费的时间较短,它可能会成为性能瓶颈。 应用
异步 API使用异步 API 设计时,客户端会向服务器发送一个请求;但是,服务器无法立即响应该请求。当客户端等待服务器完成处理请求时,它可以选择进行其他活动。然后,当服务器准备好传输响应时,客户端可以从服务器接收响应。这表明客户端和服务器之间发生异步通信,并且客户端在等待响应时不会受到阻碍。
应用
通过示例区分同步和异步 API同步通信(电话)实时交互 将拨打手机通话作为类比。双方都在实时通信。当一个人说话时,另一个人可以立即回应。同步操作,例如同步 API 调用,包括客户端应用程序发送请求并等待系统立即响应。交互被阻塞,这意味着该系统可能会在收到响应之前暂停或停止。 阻塞性质 在手机通话中,一个人通常会说话,而另一个人则等待并聆听。通信是同步的,双方都在时间同步。在同步 API 请求期间,系统通常会等待响应,然后再继续执行其他活动。这可能导致应用程序被冻结,直到所需操作完成。 即时反馈 手机讨论提供了即时反馈。当一个人提出问题时,他们期望立即得到答复。同样,在同步 API 请求中,客户端期望从系统获得快速即时的响应。同步操作的结果决定了程序的流程。 异步通信(电子邮件)独立于时间的通信 电子邮件通信异步是一个很好的类比。发件人不会期望立即得到答复,而是会继续处理自己的事务。异步操作(例如异步 API 调用)由客户端发起,不会等待即时响应。系统会自行处理请求,让客户端可以专注于其他任务。 非阻塞特性 发送电子邮件后,您不必等待触发的响应即可继续执行其他任务。从编程角度来看,异步操作是非阻塞的。系统在收到请求后不会终止;相反,它会继续运行。当系统准备好时,它将处理请求并做出响应。 灵活的响应时间表 电子邮件通信提供了响应时间的灵活性。有些电子邮件可能需要更快的答复,而另一些则可能更随意。异步操作可以包含定义响应预期持续时间的参数。例如,应用程序可能声明它需要在小时内得到响应,或者它可能有更灵活的响应时间。 超时假设 发送电子邮件时,您不会期望立即得到答复;在收到答复之前会有一个时间延迟。在异步编程中,隐含的假设是响应可能需要一些时间。应用程序可以配置为超时或在响应到达时进行处理。 混合同步和异步 API 混合系统结合了同步和异步技术。它可以使用实时 HTTP 进行同步通信,确保在需要时提供即时响应。同时,它可以包含异步通信协议,使系统能够以更延迟的方式处理任务。这种混合方法为系统提供了更大的灵活性。它能够适应不同类型的用户交互,并根据请求的性质优化资源使用。 混合系统根据用户请求的类型动态分配资源。同步技术用于关键和实时任务,以提供即时结果。异步技术允许系统为不太敏感的任务更有效地分配资源。通过允许系统适应可变的工作负载,混合范例提高了可伸缩性。在重负载期间,可以谨慎使用同步技术以保持响应能力,而在较空闲时段,异步技术有助于负载分配。混合系统在响应能力和资源效率之间找到了平衡,在优化计算资源利用率的同时提供了令人满意的用户体验。 结论异步和同步 API 设计之间的主要区别在于,同步结构是一个阻塞过程,其中客户端必须等待服务器的响应。相比之下,异步架构允许客户端在等待响应的同时执行其他操作。 根据系统的特定需求,包括性能要求、可伸缩性和所需的灵活性,可以选择同步和异步系统。尽管同步设计比异步系统更简单,但它们在灵活性和可伸缩性方面可能不如异步系统。异步结构提供了更大的灵活性和可伸缩性,但设计和实现起来更复杂。 下一个主题12 大应用程序性能监控工具 |
我们请求您订阅我们的新闻通讯以获取最新更新。