Conexión de Productores y Consumidores con Colas de Mensajes
Clase 29 de 43 • Curso Profesional de Arquitectura de Software
Resumen
¿Cómo conectar un productor de tipo cola?
Cuando nos enfrentamos a situaciones en las que un productor genera datos mucho más rápido que un consumidor puede procesarlos, el uso de un conector de tipo cola se vuelve esencial. Este conector permite encolar, es decir, agendar el procesamiento de cada mensaje producido, para que el consumidor los lea a su ritmo.
- Imagine que está leyendo un archivo grande en memoria. Cada línea leída necesita ser procesada por otro componente, una tarea que podría involucrar operaciones costosas como comunicación de red o cálculos complejos. Al encolar estas líneas, el consumidor puede ir procesándolas según su capacidad, como en una cola de trabajo.
¿Qué son los conectores de tipo repositorio o pizarra?
Los conectores de tipo repositorio o pizarra se utilizan para interactuar con componentes que funcionan como bases de datos.
- Estos conectores aseguran la transaccionalidad y la consistencia de los datos escritos. Por ejemplo, en una base de datos relacional, garantizan que todos los datos de una transacción se escriban de manera atómica y consistente.
- A nivel de lectura, estos conectores pueden asegurar que la información sea consistente durante toda la operación de lectura. Además, permiten realizar operaciones de escritura y lectura dentro de la misma conexión con la base, manteniendo la integridad y consistencia.
¿Qué función cumple el conector de tipo PubSub?
El conector de tipo publicar/subscribir (PubSub) es crucial en sistemas y aplicaciones distribuidas. Introduce un patrón de comunicación donde los componentes que publican eventos y los que los reciben (o suscriptores) no necesitan conocerse entre sí directamente.
-
Se conecta con un publicador para recibir eventos y los distribuye a los suscriptores interesados. Esencialmente, cuando ocurre un evento, el conector PubSub se encarga de entregarlo a cada suscriptor que lo requiera.
-
En una aplicación de microservicios, este patrón permite que diferentes componentes, como interfaces web o APIs, interactúen y se mantengan informados sobre los cambios sin necesidad de estar acoplados directamente. Por ejemplo, un componente puede manejar notificaciones y otro puede gestionar reportes sin interferir en su funcionamiento mutuo.
Estos ejemplos destacan cómo los conectores facilitan la integración de sistemas, optimizando el flujo de información en aplicaciones modernas. Incentivamos a seguir explorando estos temas, pues forman el núcleo de la arquitectura de software actual.