Что такое система Pub/Sub?

Nov 28 2022
Посетите systemdesign.us, чтобы ознакомиться с вопросами для интервью по проектированию систем, отмеченными компаниями и их решениями.

Посетите systemdesign.us, чтобы ознакомиться с вопросами для интервью по проектированию систем, отмеченными компаниями и их решениями. Следуйте за нами на YouTube , LinkedIn , Twitter , Medium .

Система Pub/Sub — это система обмена сообщениями, которая позволяет пользователям подписываться на определенные темы и получать сообщения только из тех тем, на которые они подписаны. Это может быть полезно для различных приложений, таких как социальные сети, новостные ленты и игры.

Как работает паб/саб?

Издатель (или отправитель сообщения) отправляет сообщение в определенную тему. Затем сообщение получают все подписчики (или получатели сообщений) этой темы. Подписчики могут отказаться от подписки на тему в любое время.

Компоненты публикации/подписки

https://aws.amazon.com/pub-sub-messaging/

В системе pub/sub есть три основных компонента:

темы : сообщения организованы в темы, и пользователи могут подписаться на определенные темы, чтобы получать сообщения.

издатели : издатели являются отправителями сообщений и отправляют сообщения в определенные темы.

подписчики : подписчики являются получателями сообщений, и они получают все сообщения из тем, на которые они подписаны.

Зачем использовать pub/sub?

Pub/sub может быть полезен для приложений, которым требуются обновления в реальном времени из различных источников. Например, приложению социальной сети может потребоваться показывать пользователям обновления от их друзей, а также новости и другой контент. Используя pub/sub, приложение может получать все эти сообщения в режиме реального времени, без необходимости постоянно запрашивать новые данные.

Каковы преимущества pub/sub?

Есть несколько преимуществ использования pub/sub:

  • Обновления в режиме реального времени: подписчики могут получать сообщения, как только они публикуются, не дожидаясь регулярного интервала опроса.
  • Гибкие подписки: подписчики могут подписаться только на те темы, которые им интересны, и могут отказаться от подписки в любое время.
  • Масштабируемость: система pub/sub может легко масштабироваться для работы с большим количеством тем и подписчиков.
  • Это позволяет в режиме реального времени общаться между издателями и подписчиками.
  • Это масштабируемая система, способная обрабатывать большое количество тем и подписчиков.
  • Он гибкий, так как подписчики могут выбирать, из каких тем они хотят получать сообщения.

Есть некоторые потенциальные недостатки использования pub/sub:

  • Доставка сообщений не гарантируется: поскольку сообщения отправляются асинхронно, нет гарантии, что они будут получены всеми подписчиками. Это означает, что некоторые сообщения могут быть пропущены, если абонент не в сети или сообщение по какой-то причине задерживается.
  • Более высокая задержка: асинхронная доставка сообщений может привести к большей задержке, чем синхронная доставка сообщений (например, в традиционной системе обмена сообщениями).
  • Ограниченная история сообщений: большинство систем публикации/подписки отслеживают только самые последние сообщения для каждой темы, а это означает, что подписчики будут получать новые сообщения только после того, как они подпишутся. Это может быть проблемой для приложений, которым требуется полная история сообщений.
  • Издатель должен знать тему сообщения, чтобы отправить его нужным подписчикам.
  • Подписчики могут получать сообщения, которые им не интересны, если они подписаны на слишком много тем.
  • Нет никакой гарантии, что сообщения будут доставлены по порядку или вообще не будут доставлены.

Список технологий Pub/Sub

  • Апач Кафка
  • Amazon Simple Notification Service (SNS)
  • Google Cloud Pub/Sub
  • Сетка событий Microsoft Azure
  • IBM Cloud Pub/Sub
  • Потоковый сервер NATS
  • CloudEvents
  • MQTT
  • топать
  • Вебхуки
  • Apache ActiveMQ Артемида
  • RabbitMQ