【发布时间】:2018-12-14 05:01:01
【问题描述】:
我有一个使用不同外部微服务的 PHP API(使用 SLIM)。
我的 apache 被配置为处理大量的同时连接(没有我的 CURLS,我可以毫不费力地处理 50k 个同时连接)。我的微服务也是如此(在 Python 中使用 GUnicorn - 每个有 25 个工人和 25 个线程)。
但是,我在使用 Apache API 卷曲我的 Python API 时遇到了问题。 事实上,当我遇到高流量峰值时(因此从我的 PHP 到我的 Python 的大量 CURL 连接) - 我的 apache 开始挂起。 似乎 CURL 已排队。 我的第一个想法是我的 Python 脚本执行速度太慢(500 毫秒)。但后来我注意到我可以手动启动 Python 脚本而没有任何延迟,即使它处于尖峰状态。
这就是为什么我认为问题来自实际的 CURL。当我有太多用户同时进行 Curling 或 CURL 响应时间过长时,他们是否可能排队?
这一切的后果是 APACHE 需要时间来响应并减慢速度。 APACHE 甚至会进入 503。
仅供参考:这两个 API 位于不同的 DOCKER CONTAINERS 上,但位于同一服务器上。两个容器的 SOMAXCON 数量都很高。
如果有人有任何想法,请帮忙。
【问题讨论】:
-
“CURL”和“用我的 Apache API 卷曲我的 Python API”是什么意思?
-
在apache上使用mod_wsgi运行python代码,是最高效的apache方法