gpt4 book ai didi

go - 水平自动缩放的 Kubernetes pod 不会从 Google Cloud Pub/Sub 订阅中提取消息

转载 作者:行者123 更新时间:2023-12-01 21:14:45 25 4
gpt4 key购买 nike

我们的应用程序在 Google Kubernetes Engine 上运行并从 Google Cloud Pub/Sub 中提取消息订阅。我们有一个 pod 在空闲状态下运行,水平 pod 自动缩放设置为 10 个 pod,具体取决于 cpu 使用情况。订阅大部分是空的,当批处理作业启动时,它会写入 Pub/Sub 主题。自动缩放运行良好。一旦 Pub/Sub 订阅中有未完成的消息,它会立即(在 30 秒内)扩展到 10 个 Pod。但问题是只有少数 pod 正在从订阅中提取消息,其余的只是坐着,即使订阅中仍有消息。

Pub/Sub 客户端设置为:

MaxExtension: 600
MaxOutstandingMessages: 100 (also tried with 25)
Synchronous: true (also tried with false)

谷歌云发布/订阅设置:
Pull-based
Ack Deadline is 600 seconds

一旦批处理作业启动,它会将 20k 条消息写入 Pub/Sub 主题。该应用程序平均每秒可以处理 2 条消息。

应用程序写在 golang我们正在使用 cloud.google.com/go v0.44.1包版本。

您知道为什么即使 Cloud Pub/Sub 订阅中有积压,这些 pod 仍然坐着而不拉消息吗?

最佳答案

你可以尝试设置这个:

    sub.ReceiveSettings.NumGoroutines = 10 * runtime.NumCPU()
sub.ReceiveSettings.MaxOutstandingMessages = -1
sub.ReceiveSettings.MaxOutstandingBytes = -1

也许通过取消一些限制,它可能会更好?

让我知道

关于go - 水平自动缩放的 Kubernetes pod 不会从 Google Cloud Pub/Sub 订阅中提取消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58234853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com