Qu'est-ce qu'un système Pub/Sub ?

Nov 28 2022
Visitez systemdesign.us pour les questions d'entrevue sur la conception de systèmes étiquetées par les entreprises et leurs solutions.

Visitez systemdesign.us pour les questions d'entrevue sur la conception de systèmes étiquetées par les entreprises et leurs solutions. Suivez-nous sur YouTube , LinkedIn , Twitter , Medium .

Le système Pub/Sub est un système de messagerie qui permet aux utilisateurs de s'abonner à des sujets spécifiques et de recevoir des messages uniquement à partir des sujets auxquels ils sont abonnés. Cela peut être utile pour une variété d'applications, telles que les réseaux sociaux, les flux d'actualités et les jeux.

Comment fonctionne le pub/sub ?

L'éditeur (ou l'expéditeur du message) envoie un message à un sujet spécifique. Le message est ensuite reçu par tous les abonnés (ou récepteurs de message) de ce sujet. Les abonnés peuvent choisir de se désabonner d'un sujet à tout moment.

Composants Pub/Sub

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

Il existe trois composants principaux dans un système pub/sub :

sujets : les messages sont organisés en sujets, et les utilisateurs peuvent s'abonner à des sujets spécifiques pour recevoir les messages.

éditeurs : les éditeurs sont l'expéditeur du message, et ils envoient des messages à des sujets spécifiques.

Abonnés : les abonnés sont les destinataires des messages et reçoivent tous les messages des sujets auxquels ils sont abonnés.

Pourquoi utiliser pub/sub ?

Pub/Sub peut être utile pour les applications qui nécessitent des mises à jour en temps réel à partir de diverses sources. Par exemple, une application de réseau social peut avoir besoin d'afficher aux utilisateurs des mises à jour de leurs amis, ainsi que des actualités et d'autres contenus. En utilisant pub/sub, l'application peut recevoir tous ces messages en temps réel, sans avoir à rechercher constamment de nouvelles données.

Quels sont les avantages du pub/sub ?

L'utilisation de pub/sub présente plusieurs avantages :

  • Mises à jour en temps réel : les abonnés peuvent recevoir des messages dès qu'ils sont publiés, sans avoir à attendre un intervalle d'interrogation régulier.
  • Abonnements flexibles : les abonnés peuvent choisir de s'abonner uniquement aux sujets qui les intéressent et peuvent se désabonner à tout moment.
  • Évolutivité : le système pub/sub peut facilement évoluer pour gérer un grand nombre de sujets et d'abonnés.
  • Il permet une communication en temps réel entre les éditeurs et les abonnés.
  • C'est un système évolutif qui peut gérer un grand nombre de sujets et d'abonnés.
  • Il est flexible, car les abonnés peuvent choisir les sujets dont ils souhaitent recevoir des messages.

L'utilisation de pub/sub présente certains inconvénients potentiels :

  • La livraison des messages n'est pas garantie : étant donné que les messages sont envoyés de manière asynchrone, il n'y a aucune garantie qu'ils seront reçus par tous les abonnés. Cela signifie que certains messages peuvent être manqués si l'abonné est hors ligne ou si le message est retardé pour une raison quelconque.
  • Latence plus élevée : la livraison de messages asynchrones peut entraîner une latence plus élevée que la livraison de messages synchrones (comme avec un système de messagerie traditionnel).
  • Historique des messages limité : la plupart des systèmes pub/sub ne gardent une trace que des messages les plus récents pour chaque sujet, ce qui signifie que les abonnés ne recevront les nouveaux messages qu'après s'être abonnés. Cela peut être un problème pour les applications qui nécessitent un historique complet des messages.
  • L'éditeur doit connaître le sujet du message afin de l'envoyer aux bons abonnés.
  • Les abonnés peuvent recevoir des messages qui ne les intéressent pas s'ils s'abonnent à trop de sujets.
  • Il n'y a aucune garantie que les messages seront livrés dans l'ordre, ou pas du tout.

Liste des technologies Pub/Sub

  • Apache Kafka
  • Service de notification simple d'Amazon (SNS)
  • Google Cloud Pub/Sub
  • Grille d'événements Microsoft Azure
  • IBM Cloud Pub/Sub
  • Serveur de diffusion NATS
  • CloudEvents
  • MQTT
  • écraser
  • Webhooks
  • Apache ActiveMQ Artémis
  • LapinMQ