阻塞(同步)Web框架中的运行状况检查

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

我有uWSGI的阻塞(同步)web框架。任务是否为kubernetes准备/健康端点以确保pod活着。端点本身没有问题,但问题是同步的。例如,如果我在uWSGI中定义了8个进程,并且web应用程序处理8个重请求,则对/ health的调用将排队并依赖于超时,kubernetes可能在某段时间内没有收到响应并决定终止/重启pod。当然,我可以在不同的端口上运行另一个Web服务,但它需要更改代码并增加部署的复杂性。也许我错过了一些东西,并且可以在uWSGI中定义独占工作者以非阻塞方式处理/健康端点?提前致谢!

kubernetes uwsgi synchronous web-frameworks
1个回答
0
投票

WSGI是一种固有的同步协议。已经有一些工作要创建一个名为ASGI的新的异步友好替代品,但它只能由Django Channels项目AFAIK实现。虽然您可以在异步服务器中安装同步模式WSGI应用程序(通常使用线程),但您不能采用其他方式。例如,您可以编写一些twisted.web代码来抓取对/health的请求并通过Twisted本地处理它们并将其他所有内容移交给WSGI容器。我不知道有什么现成的。

© www.soinside.com 2019 - 2024. All rights reserved.