Запрос StreamingPull имеет очень высокую задержку - PullRequest
0 голосов
/ 15 октября 2018

У нас очень большие задержки при запуске клиента Google PubSub.Сообщения не приходят раньше, чем через несколько минут после инициализации клиента.

При просмотре в консоли Google Cloud мы действительно видим, что google.pubsub.v1.Subscriber.StreamingPull вызовы имеют очень большие задержки (около 8 минут):

StreamingPull latency

Ожидаемое поведение?Если нет, что может вызвать эту проблему?

С уважением

1 Ответ

0 голосов
/ 15 октября 2018

Задержка в консоли Google Cloud не будет коррелировать с задержкой при получении сообщений.Природа запроса StreamingPull заключается в том, что он остается открытым в течение длительного времени, до тех пор, пока он не будет отключен из-за ошибки соединения или когда на клиенте будет инициировано отключение.Задержка в консоли будет указывать, как долго соединения остаются открытыми, а не сколько времени занимает получение сообщений.По этой же причине частота ошибок составляет 100% .

. Сообщения должны приниматься быстро после запуска подписчика, при условии, что в бэклоге есть сообщения, которые можно получить.Есть много разных вещей, которые могут привести к задержкам в доставке сообщений:

  1. Клиент подписчика, работающий на машине с ограниченными доступными ресурсами,
  2. Очень жесткий Настройки управления потоком это позволяет только несколько сообщений одновременно.
  3. Задержка на стороне издателя из-за того, что издатель работает на машине с ограниченными доступными ресурсами.
  4. Сообщения, полученные ранее другим клиентом-подписчиком, запущенным или с помощью команды pull в инструменте gcloud в той же подписке, в результате чего сообщения не доставляются до истечения крайнего срока ack .
...