【问题标题】:How do we make APIs with slow depedencies faster?我们如何让依赖慢的 API 更快?
【发布时间】:2019-03-23 19:36:59
【问题描述】:

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

1- 你需要创建一个 API 来使用一些非常慢的微服务。他们中的一些人会在几秒钟内做出反应(比如说 2 秒)。我们必须尽最大努力构建我们的 API 在延迟方面非常可靠。你会怎么做才能让这个系统快速运行?

2- 这让我想到了其他问题,比如如果我选择缓存一些数据,我应该怎么做才能避免旧缓存?例如,如果我缓存了用户的个人信息并且他刚刚更新了他的个人资料?

3- 最后,如果不是阅读操作,我们该怎么做才能使用耗时长且不影响用户体验的服务?在这种情况下,想象它是一个写操作

你会如何回答这些问题?

【问题讨论】:

    标签: api queue microservices latency low-latency


    【解决方案1】:

    这个问题有点含糊,但我会尝试提出几个解决方案。

    在进入缓存之前,我会先询问有关数据集的问题。例如,这个数据集有多大,数据集多久更改一次?如果数据集不大,您可能可以将所有数据无限期地存储在内存中,并且在更新时,您可以更新缓存中的单个记录。

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

    现在最后是第三个问题,我认为面试官试图让您异步编写类似排队机制的东西,该机制允许用户获得快速响应,您的系统会花时间处理它。这里的后续问题可能是关于处理写入需要多长时间,这将导致一系列更具体的领域问题。同样,你必须深入研究这个要求,看看面试官希望你做出什么样的权衡,因为没有灵丹妙药。

    【讨论】:

      猜你喜欢
      • 2014-05-01
      • 1970-01-01
      • 2019-05-22
      • 2013-06-04
      • 1970-01-01
      • 2021-06-19
      • 2017-08-23
      • 1970-01-01
      相关资源
      最近更新 更多