在 FastAPI Web 服务器的计算方面优先考虑一个端点

问题描述 投票:0回答:0

我们有一个基于 FastAPI 的 Web 服务器,服务于 ML 模型。此应用程序中有两个端点:

/client
/internal

我们使用

/internal
端点对数百万个文档进行批量编码,供我们内部使用。
/client
端点暴露给客户,他们可以在其中请求对文档进行编码,并且每个请求始终只有一个文档。

在某些情况下,我们会通过请求对数百万个文档进行编码来访问内部端点,然后客户端会访问客户端端点来对他们的一个文档进行编码。

自然地,我们希望优先考虑客户的请求,这样客户就不必等到我们数百万的文档被编码。

在给定的 FastAPI + python 框架内实现此目标的最佳策略是什么。我如何确定客户请求的优先级以更快地为他们服务?

我想出了以下想法:

  1. 只需在不同的端口上启动另一个 Web 服务器实例来满足客户端请求——这是最容易实现的解决方案;
  2. /client
    端点隔离一名 gunicorn 工人 - 我什至不确定这是否可能?;
  3. 使用实现优先级队列的生产者/消费者模式重构 Web 服务器。这是可行的,但可能需要花费大量时间和研究如何实施。
machine-learning design-patterns fastapi gunicorn
© www.soinside.com 2019 - 2024. All rights reserved.