Обработка сообщений Pubsub в функциях Google - PullRequest
1 голос
/ 04 мая 2020

Я узнаю о облачных функциях Google и настраиваю их на запуск сообщений, помещенных в очередь. Я думаю, что на самом деле мне не удается набрать asp некоторые понятия здесь, так как у меня есть куча вопросов и я не могу найти ответы нигде. Существует множество примеров, объясняющих функции и клиентов, но я не нашел примеров слияния двух.

  1. Функции запускаются по topi c, а не по подписке. Это странно, потому что одна topi c может иметь несколько подписок и даже несколько подписчиков на одну подписку, это означает, что функция не подтверждает сообщения, так как не знает, какое сообщение подтвердить.

  2. Опираясь на первый вопрос, когда сообщение приходит в топи c, все ли функции подписчика выполняются? А как насчет функций, которые находятся в процессе выполнения какой-либо работы? А как насчет нескольких подписчиков на одну подписку?

  3. Может ли тогда быть реализована настоящая двухтактная подписка в функции? Это означало бы, что функция работает постоянно из-за необходимости извлекать элементы, что является дорогостоящим и неправильным действием.

  4. Может ли сообщение быть скопировано из функции? Кажется, что функции повторяются только в том случае, если они развернуты с включенным разрешением повторных попыток, но затем они пытаются перезапустить функцию немедленно и в течение установленного периода повторения (по умолчанию 7 дней), что может привести к чрезвычайным затратам, если функция глючит, и это полностью дерьмовый шаблон функции из подписок и для подписок, чтобы иметь возможность получать / проверять их, чем слушать темы

  5. Я должен выбрать pu sh подписки наряду с функциями HTTP, которые кажутся намного более управляемыми (я мог бы ошибаться, не пробовал)

Может кто-нибудь пролить свет на это? Могу ли я легко контролировать сообщения из функции и могу ли я ожидать, что функция будет перезапущена, если сообщение будет перехвачено или повторно отправлено?

1 Ответ

3 голосов
/ 04 мая 2020
  1. Возможно, ключевой информацией является то, что когда вы подключаете Cloud Pub / Sub topi c к облачной функции, система создает подписку pu sh для того, чтобы отправлять сообщения в эту облачную функцию.

  2. Каждая облачная функция, которую вы ie отправляете в topi c, будет иметь собственную подписку и будет получать все сообщения, опубликованные в topi c , Если экземпляр функции уже выполняет работу, то другой экземпляр может быть создан для обработки нагрузки (или просто будет сбалансирован по нагрузке среди уже запущенных экземпляров). Pu sh подписки на самом деле не имеют представления о нескольких подписчиках для одной и той же подписки. С точки зрения Cloud Pub / Sub, существует единственная конечная точка для отправки сообщений sh. Облачные функции получают эти сообщения и распределяют их по экземплярам вашей функции, которые запущены службой.

  3. Было бы очень сложно реализовать «вытягивающую» подписку как облачную функцию. Вам понадобится триггер, чтобы запустить функцию, и она должна будет выполнить всю свою работу за время, отведенное ей для запуска. при повторной попытке сообщения. В настоящее время эта функция не поддерживается, но мы знаем об этом ограничении и надеемся в ближайшее время улучшить ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...