我有一个用 编写的服务器Python 3.6
,使用框架flask (1.0.2)
和SQLAlchemy (2.4.0)
。我有一些 rest 调用,用于向第三方服务(例如视觉 API)发出调用。
我有几个 API 调用以 RESTfuly 方式发出(为了确保 API 不会挂起它们,我还添加了超时)。然而,在几个 API 调用之后,程序挂起,它总是在同一个点上,Google 库通过 gRPC 进行 API 调用。
我最初的猜测是服务器挂了,因为我正在使用具有预加载功能的 ORM。在我看来这不是一个好的理由,因为大多数查询结果对于服务器来说都不是很大,不足以挂起。
我的第二个猜测是,当服务器使用其内部使用的自己的 SDK 调用 Google API 时,它几乎一直挂起,rpc。
当 gRPC 充当客户端并在 (AWS 的经典) 负载均衡器后面运行时,它会导致问题吗?如果是,有什么程序可以克服这个故障?
对于相同的数据,在本地环境(大约有 8GM RAM 和 16GB RAM)上从未遇到过此问题。该程序大约消耗 150MB 内存。在 AWS 服务器上管理几个 elastic-beanstalk 实例(在 ec2 实例 t2.micro 1GB RAM 上运行)。在 AWS 后面经典负载均衡器。