如果您使用 Pub/Sub 指标作为信号来自动扩缩流水线,请参考以下建议。
使用多个信号自动扩缩流水线
请勿仅使用 Pub/Sub 指标来自动扩缩流水线。这可能会导致您的自动扩缩决策出现单点故障的情况。而是应使用信号组合来触发自动扩缩。额外信号的一个示例是客户端的 CPU 利用率。此信号可指示客户端任务是否 如果纵向扩容,可以让客户端任务处理更多的工作。 以下是可用于流水线的其他 Cloud 产品信号示例:
Compute Engine (GCE) 支持根据 CPU 利用率和 Monitoring 指标等信号进行自动扩缩。Compute Engine 还支持多个指标和多个信号 以提高可靠性。
如需详细了解如何根据 Monitoring 指标进行扩缩,请参阅根据 Monitoring 指标进行扩缩。如需详细了解如何根据 CPU 利用率进行伸缩,请参阅根据 CPU 利用率进行伸缩。
Google Kubernetes Engine (GKE) Pod 横向自动扩缩 (HPA) 支持 根据 CPU 和内存用量等资源用量自动扩缩, 自定义 Kubernetes 指标和外部指标 Pub/Sub 的监控指标。 它还支持多个信号。
如需了解详情,请参阅 Pod 横向自动扩缩。
出现指标缺口时如何处理
不要认为缺少指标意味着没有 过程。例如,如果您为了应对缺失指标,将处理任务缩减为零,那么在此期间已经存在的待处理消息或发布的消息可能不会被使用。这会增加端到端延迟时间。 为尽可能缩短延迟时间,请将任务数下限设置为大于零, 始终准备好处理发布的消息 即使最近的 Pub/Sub 指标指示空队列也是如此。
GCE 自动扩缩器和 GKE HPA 均旨在在指标不可用时保持当前副本数量。这提供了一个安全网, 可用指标
您还可以实现 Pub/Sub 流控制机制,以防止任务因缺少指标而意外缩减而导致任务过载。