何时使用同步模型与异步模型?

时间:2019-06-27 20:08:29

标签: java api asynchronous concurrency

我正在设计一个本地缓存服务,该服务将允许用户快速访问Redis存储中的数据。应用程序的流程是这样的:

  1. 客户要求代理提供信息。
  2. 代理首先检查Redis,如果有则将数据返回给客户端。
  3. 如果没有数据,则代理将从AWS提取数据并将其返回给客户端,并将其缓存在Redis存储中。

我主要关心的是检索非缓存数据的相对速度。如果缓存中尚不存在数据,则代理必须花时间从AWS检索数据。如果代理是异步的,则它有可能在等待对云的更长调用时快速检索缓存的数据。

另一方面,我听说有些情况下使用异步效率比多线程Spring Boot应用程序低,尤其是考虑到在大多数情况下,即使对API的调用也可以保证小于100ms

哪种模型更适合此类应用?

奖金问题:在这个特定项目的范围之外,什么时候使用Async是个好主意,什么时候会对应用程序的性能产生负面影响?

Diagram

0 个答案:

没有答案