Servicios conectados con Azure Service Bus: patrón PubSub en acción
Clase 14 de 24 • Curso de Introducción a los Microservicios
Resumen
¿Qué son Topics y Subscriptions en Azure?
Azure Topics y Subscriptions forman parte del patrón de diseño PubSub (Publicador-Suscriptor), permitiendo que múltiples servicios reaccionen a mensajes emitidos por un servicio inicial. Esto facilita la comunicación desacoplada entre diferentes componentes de una aplicación.
¿Cómo funciona la diferenciación por edad usando Azure Topics?
Al recibir mensajes desde una cola (queue), el servicio inicial obtiene y fragmenta la información para determinar la edad basada en el año de nacimiento. La lógica implementada envía mensajes específicos a:
- Topic adultos: Cuando la persona tiene 18 años o más.
- Topic niños: Cuando la persona es menor de 18 años.
Los mensajes enviados son idénticos en estructura y contenido, excepto por el tópico asociado. Esto permite claramente diferenciar el tratamiento posterior según la suscripción al tópico correspondiente.
¿Cómo implementar Topics en código .NET?
El proceso incluye incorporar el método Create and Send Topic
al servicio.
// Ejemplo simplificado de método Create and Send Topic
private async Task CreateAndSendTopic(string mensaje) {
// fragmentar mensaje y obtener año
bool adulto = // lógicamente determinar si es adulto o niño
var topic = adulto ? "AdultTopic" : "ChildrenTopic";
await enviarMensajeAlTopic(topic, mensaje);
}
Esta tarea asincrónica permite la ejecución independiente del método sin bloquear el flujo principal del servicio.
¿Cómo verificar Topics y mensajes en Azure Portal?
En Azure Portal puedes:
- Revisar la sección subscriptions dentro de Topics.
- Observar la cantidad de mensajes en espera.
- Validar que los mensajes se estén distribuyendo adecuadamente entre tópicos de adultos y niños según la condición implementada.
Esta práctica ofrece claridad al desarrollo y asegura el correcto direccionamiento y procesamiento según la lógica del negocio.
Deja tu comentario si tienes dudas o deseas compartir cómo implementaste esta solución.