Нагрузка на подписчиков - как это делается? - PullRequest
0 голосов
/ 28 июня 2018

В документах GCP pubsub упоминается балансировка нагрузки для режима pull, не совсем понятно, как его использовать.

В Subsiption или The Subscriber Builder, похоже, нет способа включить это.

Вопрос: Как настроить балансировку нагрузки для нескольких подписчиков pubsub?

Фон:

Мы используем несколько подписчиков на одну и ту же тему, чтобы добиться устойчивости. (Несколько конечных точек могут быть запрошены для данных из одного хранилища данных).

Подписки сохраняют сообщения, но без рассылки все подписки получают все сообщения, что приводит к дублированию данных в нашем хранилище данных. Возможно, этот фон даст идеи для другого способа достижения устойчивости.

То, о чем мы думали о себе:

  • Использовать несколько хранилищ данных ...
  • Отметьте сообщения и выполните некоторую оптимистическую блокировку / управление версиями строк в хранилище данных.

Технологии:

  • GCP pubsub
  • Spring Boot / Data
  • JPA
  • Postgres DB.

1 Ответ

0 голосов
/ 28 июня 2018

Если все подписчики получают все сообщения, то, вероятно, вы используете разные подписки для каждого подписчика. Балансировка нагрузки происходит, когда у вас разные подписчики, которые извлекают все из одной подписки. Из руководства по подписке описания распределения нагрузки: «Несколько абонентов могут совершать пулл-вызовы на одну и ту же« общую »подписку . Каждый подписчик получит подмножество сообщений» (выделение мое) , Когда вы используете разные подписки, вы получаете разветвление, когда все подписчики получают все сообщения.

...