Procesamiento de mensajes con Topics en microservicios con .NET
Clase 15 de 24 • Curso de Introducción a los Microservicios
Resumen
¿Qué es un Topic y cómo configurarlo en .NET?
Si estás implementando servicios que requieren comunicación eficaz dentro de microservicios, utilizar Topics es una opción valiosa. Un Topic, diferente a una cola (Queue), puede distribuir mensajes a múltiples destinatarios. Al configurar tu proyecto .NET, necesitas agregar la configuración del Topic directamente en tu archivo AppSettings.json
. Debes incluir:
- Nombre del Topic, por ejemplo,
Adult Topic
. - Cadena de conexión de SQL (local o remota).
Tener estos datos a mano y correctamente configurados es clave para asegurar un funcionamiento adecuado.
¿Cómo transformar tu API en una aplicación Worker?
El paso importante luego de configurar tus ajustes es modificar la estructura original de un endpoint habitual hacia una aplicación del tipo Worker. Este cambio implica:
- Crear un archivo llamado
Worker
. - Implementar el código requerido, destacando el método de guardado en base de datos (
SaveChanges
).
En detalle, el método extra incluido descompone el mensaje recibido del Topic, extrae información esencial (nombre, apellido, año de nacimiento, URL de imagen), y luego procede a almacenarla en SQL.
¿Qué estructuras adicionales necesitas crear?
Dentro del contexto de la aplicación, hay dos componentes adicionales por considerar:
¿Cómo configurar Data Context?
Dentro una carpeta denominada Data
, insertarás el archivo DataContext.cs
. Este archivo es esencial porque:
- Gestiona la conexión directa con tu base de datos SQL.
- Integra el modelo que estás usando.
¿Cómo crear el modelo Adult?
Finalmente, hay que desarrollar un modelo dentro de una carpeta llamada Models
. Este modelo, Adult.cs
, contendrá propiedades básicas del adulto:
- Nombre.
- Apellido.
- Año de nacimiento.
- URL de la imagen.
Seguir estos pasos aclara considerablemente el proceso integrativo hacia la funcionalidad de tus microservicios, combinando eficientemente API y servicios basados en Topics.