这里我们正在研究Kafka流进程,它运行在GCP中的VM上。问题是,我已经自动缩放了Kafka流处理器,但因为它现在是自动缩放的,一切都像预期的那样工作,但我们注意到,一旦流量变低,所有新的虚拟机的旋转就会下降。
我们想要的是,在关闭或终止autoscale组中的VM之前,应该检查是否有一些查询或进程处于pending或in-process状态,然后在检查autoscale组后,应该等待该VM直到所有进程完成,当该进程完成时,才应该删除虚拟机。
到目前为止,我还没有弄清楚如何做我想做的,所以没有实现
我们想要的是在它关闭或终止虚拟机之前Autoscale组应该检查是否有查询或进程在挂起或进程中状态,然后在检查自动缩放组后,它应该等待该VM直到所有进程完成,什么时候该过程完成后,才应该删除虚拟机器。
Autoscaler决定在管理实例组(MIG)中伸缩实例。
为了实现您的需求,您可以根据您的应用程序使用情况创建一个自定义的云监控指标。
来自GCP文档:
基于云监控指标的自动缩放允许您调整根据您的应用程序测量所需的容量。当您自动缩放器根据度量自动缩放MIG,当metric值增大,减小时删除虚拟机。
例如,你可以定义每个用户需要多少虚拟机,延迟,或Pub/Sub订阅中的消息数。