所以我一直在准备并进行采访。我在两次采访中被问到这个问题,但我无法给出令人满意的答案,或者可能不是他们想听到的答案。
问题是,让我们抛开负载平衡、多实例、数据库复制等各种操作技术,您可以在应用程序中进行哪些更改(即 REST API)以使其能够处理大量请求?
到目前为止我的想法是,我们可以使任何数据库或其他 API 调用异步,让它们在后台的单独线程中运行,以便处理可以继续处理其他请求。我的一位同事说使用缓存来最大限度地减少数据库调用。
也许可以增加线程池的大小,但线程很昂贵,而且您只能创建这么多线程。此外,如果池中的所有线程都忙,其他请求将被阻塞,直到有线程可用为止。所以,这似乎根本不属于解决这个问题的方法。
总的来说,我们得出的结论是,在这种情况下,除了确保 API 应该只执行轻量级操作(如果这有意义的话)之外,我们实际上无能为力。
我用谷歌搜索了相同的内容,但除了操作和线程池之外,没有真正找到任何东西。
我想知道社区是否可以对此提供意见。你是如何处理这种情况的?