【发布时间】:2020-03-24 08:16:51
【问题描述】:
我正在运行将消息发布到 PubSub 主题并触发后台云功能的项目。
我读到,在消息量大的情况下,它表现良好,但对于每秒数百甚至数十条消息的较少量,Pub/Sub 可能会产生高延迟..
发布单条消息的代码示例:
const {PubSub} = require('@google-cloud/pubsub');
const pubSubClient = new PubSub();
async function publishMessage() {
const topicName = 'my-topic';
const dataBuffer = Buffer.from(data);
const messageId = await pubSubClient.topic(topicName).publish(dataBuffer);
console.log(`Message ${messageId} published.`);
}
publishMessage().catch(console.error);
PubSub 触发的代码示例函数:
exports.subscribe = async (message) => {
const name = message.data
? Buffer.from(message.data, 'base64').toString()
: 'World';
console.log(`Hello, ${name}!`);
}
云功能环境详情:
节点:8
谷歌云/发布订阅:1.6.0
问题在于,当使用消息吞吐量低(例如,每秒 1 个请求)的 PubSub 时,它有时会遇到困难并显示出令人难以置信的高延迟(高达 7-9 秒或更多)。 p>
有没有一种方法或解决方法可以让 PubSub 每次都表现良好(50ms 或更短的延迟),即使传入消息量很少?
【问题讨论】:
-
您是在猜测还是对具体细节有实际问题?
-
@JohnHanley,不,这是实际问题。您需要哪些详细信息?
-
我在您的问题中没有看到问题 - 只是假设 Pub/Sub 很慢。提供有关您的问题的详细信息。 stackoverflow.com/help/how-to-ask
-
@JohnHanley 已编辑
-
当您说“延迟”时,您是指发布延迟还是端到端延迟?
标签: javascript node.js google-cloud-platform google-cloud-functions google-cloud-pubsub