Я работаю над проектом, который публикует сообщения в PubSub topi c и запускает фоновую облачную функцию.
Я читал, что при больших объемах сообщений он работает хорошо, но для меньших объемов, таких как сотни или даже десятки сообщений в секунду, Pub / Sub может привести к большим задержкам.
Пример кода для публикации sh отдельное сообщение:
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
google-cloud / pubsub: 1.6.0
Проблема в том, что при использовании PubSub с низкой пропускной способностью сообщений (например, 1 запрос в секунду) он иногда испытывает трудности и показывает невероятно высокую задержку (до 7-9 с или более).
Есть ли способ или обходной путь, чтобы PubSub работал хорошо каждый раз ( 50 мс или меньше задержки) даже при небольшом количестве входящих сообщений?