createDrainingControl 的目的是什么?

What is the purpose of createDrainingControl?

我正在阅读 Alpakka 的文档。在阅读 Kafka consumer API 时,我遇到了 createDrainingControl(),我想知道这个函数有什么用?我知道这是用来排流和停流的,但是如果我们一直在消费来自 Kafka MQ 的消息,为什么我们需要停流?

最终您会想要部署应用程序的新版本,您将不得不停止当前应用程序并启动它的新版本。这始终可以通过终止旧应用程序来完成,但这会增加重播、超时或错误的次数,具体取决于您的应用程序所做的事情。

相反,如果您通过先排出流来优雅地停止应用程序,它会减少这些不规则的数量。