我将使用 Gunicorn 和 Gevent/Eventlet 作为异步工作线程,在 Kubernetes 上部署一个带有 Docker 的 Python Flask 服务器。该应用程序将:
Kafka 中的每个主题每分钟将收到 1 条消息,因此应用程序每分钟需要从 Kafka 消费大约 20 条消息。对于每条消息,处理和执行大约需要 45 秒。问题是我如何才能以良好的方式扩展它?我知道我可以在 Gunicorn 中添加多个工作线程,并在部署到 Kubernetes 时使用 pod 的多个副本。但这就足够了吗?不同 Pod 中的可用工作人员之间的工作负载是否会自动平衡?或者我可以做些什么来确保可扩展性?