如何使慢速运行的API更快?

时间:2018-10-18 22:22:20

标签: api queue microservices latency low-latency

最近我参加了两次不同的工作面试,他们提出的一个问题是这样的:

1-您需要创建一个API,该API将使用一些非常慢的微服务。他们中的一些人在几秒钟(例如2秒)内做出响应。我们必须尽最大努力在延迟方面构建非常可靠的API。您将如何使该系统快速运行?

2-这使我想到了其他问题,例如,如果我选择缓存某些数据,我该怎么做才能避免旧的缓存?例如,如果我缓存了用户的个人信息,而他只是更新了个人资料?

3-最后,如果它不是读取操作,那么要使用长时间不影响用户体验的服务,我们该怎么办?在这种情况下,可以想象这是一次写操作

您将如何回答这些问题?

1 个答案:

答案 0 :(得分:1)

问题有点模糊,但我会尝试提出一些解决方案。

在进入缓存之前,我首先要问有关数据集的问题。例如,此数据集有多大?数据集多久更改一次?如果数据集不大,则可以将其全部无限期地存储在内存中,并且在更新时,可以更新缓存中的各个记录。

当然,当我们说将其存储在缓存中时,我们还必须牢记数据检索。如果数据检索需要以许多不同的方式获取数据并且数据集很大,则缓存可能不如解决方案那么大。这种类型可以解决您发布的第一个和第二个问题,而没有面试官的进一步信息。反过来,这确实是您需要从面试官那里弄清楚要求的地方,以查看您是否处在正确的轨道上。

现在终于到了第三个问题,我认为访问者正在尝试让您异步地编写诸如排队机制之类的东西,该机制允许用户快速响应,而您的系统则花时间进行处理。此处的后续问题可能是处理一次写入要花费多长时间,这将导致一系列其他领域特定的问题。同样,您必须深入了解此要求,以了解面试官希望您做出什么样的权衡,因为没有灵丹妙药。