Перейти к основному содержимому
Нормативная версия документации - английская

Эта страница переведена с английского языковой моделью. При любом расхождении верен английский оригинал.

Темы

Тема Pub/Sub передаёт каждое сообщение всем подпискам на неё, а подписчики одной подписки делят её сообщения между собой.

Издатель публикует в одну тему; каждая из двух подписок получает все сообщения, а два подписчика одной подписки делят их между собойПодписка billingПодписка auditИздательТема ordersПодписчик 1:сообщения 1 и 3Подписчик 2:сообщение 2Один подписчик:сообщения 1, 2, 3Подписка хранит сообщение, пока его не подтвердятили пока не истечёт срок хранения, с подписчиком или без
Схема текстом
  1. Подписка billing: Подписчик 1: сообщения 1 и 3; Подписчик 2: сообщение 2
  2. Подписка audit: Один подписчик: сообщения 1, 2, 3
  3. Издатель → Тема orders: публикует
  4. Тема orders → Подписка billing: каждое сообщение
  5. Тема orders → Подписка audit: каждое сообщение
  6. Подписка хранит сообщение, пока его не подтвердят или пока не истечёт срок хранения, с подписчиком или без

Издатель называет тему и ничего больше. Подписка - самостоятельный ресурс, привязанный ровно к одной теме. У темы может быть много подписок.

Подписка получает сообщения, которые опубликованы в её тему после того, как она создана. Каждая подписка получает собственную копию каждого сообщения, поэтому billing и audit никогда не забирают сообщения друг у друга.

Подписчики одной подписки делят её сообщения: каждый получает свою часть, и никакие два не получают одну и ту же. Новый подписчик подписки распределяет её нагрузку. Новая подписка добавляет ещё одного читателя всех сообщений.

В ruststream-gcp-pubsub обработчик называет подписку, которую читает, через GooglePubSub или простым именем, а издатель называет тему, в которую пишет. Эта модель взята у Google (обзор подписок, основы Pub/Sub). Как подписчик держит сообщение, пока работает с ним, показывает страница Аренда.