Зависание прослушивателя Google PubSub

#node.js #google-cloud-pubsub

# #node.js #google-облако-pubsub

Вопрос:

У меня проблема с Google PubSub Node.js замораживание слушателя с помощью pull.

Я использую следующий поток:

 1. PubSub client is created,
2. Subscription is fetched from the specified topic
3. Listeners are attached to "message" and "error" events.
 

Сначала он извлекает около ~ 500 сообщений и подтверждает их, но после этого он просто зависает, имея в очереди> 1000 сообщений. Я пробовал периодически повторно запускать функцию listeners ( removeListener/on ), но она выдает только несколько сообщений. После перезапуска приложения оно вытягивает ~ 500, и происходит то же самое.

Ответ №1:

Попробуйте проверить настройки FlowControl, возможно, это ограничивает количество и скорость, с которой ваш подписчик получает сообщения. Кроме того, если вы не подтверждаете или не удаляете полученные сообщения, они будут учитываться в общем количестве ожидающих сообщений. После достижения предела maxMessages подписчик больше не будет получать сообщения до тех пор, пока не будут подтверждены или заблокированы оставшиеся сообщения (или истекли и в конечном итоге будут повторно отправлены после периода максимального расширения).

Для получения дополнительной информации: https://cloud.google.com/pubsub/docs/pull#subscriber-flow-control-nodejs