¿Qué es un sistema Pub/Sub?
Visite systemdesign.us para ver las preguntas de la entrevista de diseño de sistemas etiquetadas por empresas y sus soluciones. Síganos en YouTube , LinkedIn , Twitter , Medium .
El sistema Pub/Sub es un sistema de mensajería que permite a los usuarios suscribirse a temas específicos y recibir mensajes solo de los temas a los que están suscritos. Esto puede ser útil para una variedad de aplicaciones, como redes sociales, fuentes de noticias y juegos.
¿Cómo funciona pub/sub?
El editor (o remitente del mensaje) envía un mensaje a un tema específico. Luego, el mensaje es recibido por todos los suscriptores (o receptores de mensajes) de ese tema. Los suscriptores pueden optar por darse de baja de un tema en cualquier momento.
Componentes de pub/sub

Hay tres componentes principales en un sistema pub/sub:
temas : los mensajes se organizan en temas y los usuarios pueden suscribirse a temas específicos para recibir los mensajes.
editores : los editores son el remitente del mensaje y envían mensajes a temas específicos.
suscriptores : los suscriptores son el receptor del mensaje y reciben todos los mensajes de los temas a los que están suscritos.
¿Por qué usar pub/sub?
Pub/sub puede ser útil para aplicaciones que requieren actualizaciones en tiempo real de una variedad de fuentes. Por ejemplo, una aplicación de red social puede necesitar mostrar a los usuarios actualizaciones de sus amigos, así como noticias y otro contenido. Al usar pub/sub, la aplicación puede recibir todos estos mensajes en tiempo real, sin tener que buscar constantemente nuevos datos.
¿Cuáles son los beneficios de pub/sub?
Hay varios beneficios de usar pub/sub:
- Actualizaciones en tiempo real: los suscriptores pueden recibir mensajes tan pronto como se publiquen, sin tener que esperar un intervalo de sondeo regular.
- Suscripciones flexibles: los suscriptores pueden optar por suscribirse solo a los temas que les interesan y pueden darse de baja en cualquier momento.
- Escalabilidad: el sistema pub/sub puede escalar fácilmente para manejar una gran cantidad de temas y suscriptores.
- Permite la comunicación en tiempo real entre editores y suscriptores.
- Es un sistema escalable que puede manejar una gran cantidad de temas y suscriptores.
- Es flexible, ya que los suscriptores pueden elegir de qué temas quieren recibir mensajes.
Hay algunos inconvenientes potenciales al usar pub/sub:
- La entrega de mensajes no está garantizada: dado que los mensajes se envían de forma asíncrona, no hay garantía de que todos los suscriptores los reciban. Esto significa que algunos mensajes pueden perderse si el suscriptor está desconectado o si el mensaje se retrasa por algún motivo.
- Latencia más alta: la entrega de mensajes asincrónicos puede resultar en una latencia más alta que la entrega de mensajes síncronos (como con un sistema de mensajería tradicional).
- Historial de mensajes limitado: la mayoría de los sistemas de publicación/suscripción solo realizan un seguimiento de los mensajes más recientes para cada tema, lo que significa que los suscriptores solo recibirán mensajes nuevos después de haberse suscrito. Esto puede ser un problema para las aplicaciones que requieren un historial completo de mensajes.
- El editor debe conocer el tema del mensaje para enviarlo a los suscriptores correctos.
- Los suscriptores pueden recibir mensajes que no les interesan si se suscriben a demasiados temas.
- No hay garantía de que los mensajes se entreguen en orden o en absoluto.
Lista de tecnologías Pub/Sub
- apache kafka
- Servicio de notificación simple de Amazon (SNS)
- Google Cloud Pub/Sub
- Cuadrícula de eventos de Microsoft Azure
- IBM Cloud Pub/Sub
- Servidor de transmisión NATS
- Eventos en la nube
- MQTT
- PISAR MUY FUERTE
- Webhooks
- Apache ActiveMQ Artemis
- ConejoMQ