2016-10-25 9 views
0

Я реализую очередь для проглатывания данных с использованием PubSub. Мой план состоит в том, чтобы использовать Push-подписки для мгновенного получения данных, когда они публикуются.Должен ли я создавать Push PubSub Subscription один или несколько раз?

При использовании Pull Sub я видел много шаблонов кода, пытающихся воссоздать Pull Subscription в каждом прогоне, чтобы гарантировать, что у нас есть активные подписки в следующем цикле вытягивания.

Должен ли я делать то же самое с помощью Push-подписки? IMHO нет, но я боюсь, что в какой-то момент Push подписки не являются вечными и должны контролироваться, чтобы гарантировать активную подписку на Push в следующий раз, когда опубликовано сообщение.

Что такое хороший шаблон для создания Push-подписки? Должен ли я создавать Push-подписку один раз с помощью PubSub Admin Interface или создавать (или даже воссоздавать) программно?

ответ

2

Причина, по которой абоненты будут стремиться воссоздать код при запуске, вероятно, будет связана с тем фактом, что подписки собираются с мусором, если их присутствие не было обнаружено в течение 30 дней (см. «Являются ли сообщения долговечными или постоянными, если абонент отсутствует? "в Google Cloud Pub/Sub FAQ.Кроме того, если выталкивающая подписка явно удалена, воссоздание ее при запуске в коде гарантирует, что запросы на pull не будут терпеть неудачу. Для абонентов pull, понятие обнаружения присутствия довольно просто: проверьте на вызовы Pull.

Для push-подписчиков это немного более двусмысленно. Если кто-то должен был удалить подписку, сам абонент не смог бы узнать, что он был удален, он просто перестанет получать сообщения. вы не будете удалять подписки вручную и будете отправлять по крайней мере одно сообщение каждые 30 дней, вам не нужно беспокоиться о создании вашей подписки при запуске, и вы можете просто создать его один раз через интерфейс Pub/Sub Admin.

Если вы хотите, чтобы вы были уверены, вы могли бы create a policy in Stackdriver сообщить, когда в вашей подписке не было сообщений, которые были перенесены на него в течение некоторого периода времени (при условии, что вы публикуете довольно постоянные потоковые сообщения). Добавьте условие «Метрическое отсутствие» и выберите «Cloud Pub/Sub Subscription» в качестве типа ресурса, имени подписки и «Толчок запроса запроса» в качестве триггерной метрики.

 Смежные вопросы

  • Нет связанных вопросов^_^