【发布时间】:2020-06-10 13:44:38
【问题描述】:
我们有一个在中欧的服务器上运行的 Django 应用程序,一个在美国有服务器的服务提供商,在美国有一个带有简单 Flask 应用程序的代理服务器。 Flask 应用程序接受来自提供者的请求并将它们转发到我们的主 Django 应用程序。我们无法在美国运行 Django 应用。
目前,我们遇到了一个问题,即请求(带有响应)通常比实际花费的时间要长一些 - 它必须在 3 秒以下 - 部分原因是我们的主 Django 应用程序负载过重,所以我们要优化流程。
现在 Flask 和 Django 应用程序之间的通信是一个简单的Requests.post 用于来自提供程序的每个请求,它打开一个新的 TCP 连接。这在美国和欧洲之间可能会有点耗时(因为握手)。
我的想法是在两个应用程序之间创建某种“永久”连接,这样就不需要为每个请求握手,从而节省了我们一点时间。 天真的解决方案是在 Django 端创建一个 HTTP 服务器,并在 Flask 端创建一些服务(具有多个工作人员),这将创建连接,保持它们的活动状态,监听 Flask 代理并通过已经打开的方式转发来自 Flask 代理的请求与 Django 应用的 TCP 连接。
这似乎有点矫枉过正,但也有些东西,必须已经实施。您对如何在不触及 Flask 或 Django 应用程序(仅更改 URL...)的情况下尽可能优雅地解决此问题有任何建议吗? 谢谢你的想法
【问题讨论】:
标签: django flask tcp connection