【发布时间】:2016-04-15 03:24:50
【问题描述】:
GCE 实例组能否根据 Google Cloud PubSub 队列计数或其他异步任务队列(例如 PSQ)进行扩展/缩减?
【问题讨论】:
标签: google-compute-engine google-cloud-pubsub
GCE 实例组能否根据 Google Cloud PubSub 队列计数或其他异步任务队列(例如 PSQ)进行扩展/缩减?
【问题讨论】:
标签: google-compute-engine google-cloud-pubsub
是的!
该功能现在处于 alpha 阶段:https://cloud.google.com/compute/docs/autoscaler/scaling-queue-based
【讨论】:
我自己没有尝试过,但查看文档,似乎可以针对 Pub/Sub 消息队列计数设置自动缩放。
此页面 [0] 介绍了如何设置自动扩缩器以根据 Cloud Monitoring 服务提供的标准指标进行扩缩。
本页 [1] 解释了您可以将哪些指标用于自动调节程序。这两个看起来很有用:
pubsub.googleapis.com/subscription/num_outstanding_messages pubsub.googleapis.com/subscription/num_undelivered_messages
[0]https://cloud.google.com/compute/docs/autoscaler/scaling-cloud-monitoring-metrics [1]https://cloud.google.com/monitoring/api/metrics
【讨论】:
您不能为此目的使用 pubsub 指标(pubsub.googleapis.com/subscription/num_outstanding_messages 或 pubsub.googleapis.com/subscription/num_undelivered_messages)。 根据文档:
有效的扩展利用率指标满足以下条件:
标准指标有一个resource_id标签,每个流的标签值是一个实例的ID。
标准指标描述实例的繁忙程度,指标值随组中虚拟机实例的数量成比例增加或减少。
pubsub 指标不符合该标准。
但是,您可以通过两种方式使用基于 pubsub 的自动缩放:
编写您自己的自定义指标 - 您可以使用 gcloud 监控 API 获取您的发布订阅时间序列数据。比使用它来计算您自己的自定义监控指标 - 例如 - 上次时间序列值除以您的平均/所需延迟。 您可以将此方法用于您正在使用的每个异步队列解决方案。
仍处于 alpha 阶段,有一个 gcloud api 用于基于订阅者的自动缩放:https://cloud.google.com/compute/docs/autoscaler/scaling-queue-based。此方案仅适用于 google cloud pubsub,不能与其他异步队列方案一起使用。
【讨论】: