Создание нескольких подпрограмм на одну и ту же тему для распределения нагрузки (pub / sub) - PullRequest
0 голосов
/ 06 февраля 2019

Я потратил почти день на под-документацию Google Pub, чтобы создать небольшое приложение.Я думаю о переходе с rabbitMQ на паб / саб Google.Вот мой вопрос:

У меня есть приложение, которое отправляет сообщения в тему (T).Я хотел сделать распределение нагрузки через подписчиков.Итак, я создал 3 подписчиков на T. Я сохранил имя всех 3 подпрограмм одинаково (S), чтобы я не получал одно и то же сообщение 3 раза.

У меня 2 проблемы:

  1. Там, где я не утешаю, я вижу 3 одинаковых подписчиков на T. Он показывает 1
  2. Если я пытаюсь запустить все 3 экземпляра подписчиков одновременно.Я получаю сообщение «Произошла ошибка обслуживания».Ошибка исчезла, если я начал последовательно.

Наконец, Google серьезно относится к pub / sub?Глядя на документацию и участие общественности, я не уверен, стоит ли мне переходить на google pub / sub.

Спасибо,

1 Ответ

0 голосов
/ 06 февраля 2019

В pub / sub каждая подписка получает копию каждого сообщения.Поэтому для обработки сообщения о балансе нагрузки вам не нужны 3 разные подписки, а одна подписка, которая рассылает сообщения 3 работникам.

Если вы используете доставку по запросу, просто создайте одну подписку (каквремя действия, когда вы настраиваете систему), и пусть каждый работник извлекает одну и ту же подписку.

Если вы используете принудительную доставку, у вас будет одна подписка, отправляющая на одну конечную точку, которая обеспечивает балансировку нагрузки (например, push toбалансировщик нагрузки HTTP с несколькими экземплярами в бэкэнд-сервисе

Google серьезно относится к Pub / Sub, он глубоко интегрирован во многие продукты (GCS, BigQuery, Dataflow, Stackdriver, облачные функции и т. д.), и Google использует его внутренне.

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