CloudFunctions with Pubsub : 发布延迟很长
Posted
技术标签:
【中文标题】CloudFunctions with Pubsub : 发布延迟很长【英文标题】:CloudFunctions with Pubsub : long delay to publish 【发布时间】:2021-08-02 19:20:59 【问题描述】:我对 Pubsub 有疑问。我有一个功能和一个主题。当我发布该主题时,发布消息需要 2 分钟。这正常吗?
本地不存在此问题(使用 webstrom / Google Cloud SQK for windows)。 本地发布时间:240ms 谷歌云控制台发布时间:2分钟
在我的代码下面:
var topicName = "projects/XXXXXXXXXXXXXX/topics/ps_checkNiveauBacTampon";
const publisher = pubSubClient.topic(topicName,
batching:
maxMessages: 100,
maxMilliseconds: 1,
,
);
exports.helloPubSub = function(event, context) =>
var jsonPub = idBassin: 1;
var payload = Buffer.from(JSON.stringify(jsonPub));
// Publishes the message as a string, e.g. "Hello, world!" or JSON.stringify(someObject)
//const dataBuffer = Buffer.from(JSON.stringify(jsonPub));
try
console.log('In try, before publish');
const messageId = await publisher.publish(payload);
console.log('In try, after publish');
catch (error)
console.error(`Received error while publishing: $error.message`);
process.exitCode = 1;
console.log('After try');
谷歌云日志下方:
【问题讨论】:
您在特定地区吗? 我已在此问题中添加了 Cloud Functions 标签,以防此处的问题与 Cloud Functions 相关。 2 分钟的发布时间是不寻常的,尤其是因为您已在批处理设置中将maxMilliseconds
设置为 1。
@guillaumeblaquiere 我在留尼汪岛。云功能在 europe-west1
如果您的 Cloud Function 正在执行任何重要的计算,它可能会受到资源限制。你可以尝试为你的函数使用更高层的 CPU/内存,看看这是否能提高性能?如果没有帮助,请向 Google Cloud 支持提出案例,以便他们可以帮助您处理特定的函数和 Pub/Sub 主题。
【参考方案1】:
发布延迟可能源于 Pub/Sub 或 Cloud Functions 端。
关于 Pub/Sub,低吞吐量可能会导致 冷缓存 问题。这是因为 Pub/Sub 是为低延迟和高吞吐量而设计的。另一种可能性是存在实施问题。您可以尝试减少maxMessages
,看看是否能解决问题。
关于 Cloud Functions,可能是 Lauren 已经说过的问题。如果函数遇到高 CPU 或 RAM 使用率,可能会导致在 Pub/Sub 上发布主题出现意外延迟。正如您所说,在本地运行时一切正常,也许您使用的是更高的硬件规格。如果是这种情况,您可以尝试增加 CPU 和 RAM。
【讨论】:
以上是关于CloudFunctions with Pubsub : 发布延迟很长的主要内容,如果未能解决你的问题,请参考以下文章
从 Watson Assistant 调用 OpenWeather API:“直接 CloudFunctions 调用不成功”
我可以将 Google CloudFunctions 用于可靠的应用程序目的吗?
Cloud Tasks + Cloud Functions - 重复执行
如何让 Google Cloud Functions 保持温暖?