Contenido del curso
0:00/4:56
Dividir una API en microservicios escalables
Suscríbete para ver másKafka para comunicar microservicios por eventos
Suscríbete para ver másFlujo de trabajo con Kafka para enrutar microservicios automáticamente
Suscríbete para ver másBases de datos fuera de contenedores Docker
Suscríbete para ver másAutomatiza microservicios ASP.NET con Bash
Suscríbete para ver másAutomatizar microservicios con Bash y Dockerfile
Suscríbete para ver másAzure Service Bus para comunicación entre microservicios
Suscríbete para ver másRest Client como alternativa a Swagger en VS Code
Suscríbete para ver másTres microservicios .NET corriendo sin Docker
Suscríbete para ver másCreación de servicios de consulta con .NET y SQL
Suscríbete para ver másDocker Compose con cinco microservicios .NET
Suscríbete para ver másMonorepo vs multirepo en microservicios
Suscríbete para ver másConfiguración de secretos de GitHub para desplegar en Azure
Suscríbete para ver másDespliegue de aplicaciones con Azure Container Apps desde Docker Hub
Suscríbete para ver másDespliegue automático de microservicios con GitHub Actions
Suscríbete para ver másDesplegando microservicios con GitHub Actions
Suscríbete para ver másPróximos pasos de mejora en arquitectura de microservicios
Suscríbete para ver másConectar un microservicio .NET a un topic de Azure Service Bus y persistir los datos en SQL Server es el paso que cierra el flujo entre queues y topics. Aquí verás cómo configurar el servicio Add Adult para que escuche un topic, transforme el mensaje recibido y lo guarde en base de datos usando Entity Framework.
Qué configurar en appsettings.json para conectar Service Bus y SQL
El primer paso dentro del microservicio Add Adult es preparar la configuración. A diferencia de ejercicios anteriores, ahora necesitas dos valores en lugar de uno.
En el archivo appsettings.json debes colocar:
Adults Topic.DefaultConnection hacia tu servidor de SQL Server, que puede ser local o remoto.¿Importa si el servidor SQL es local o remoto? No. Mientras tu aplicación tenga conectividad hacia ese servidor, el worker funciona sin problema.
Antes de tocar código, también necesitas instalar los paquetes de NuGet correspondientes. Esto se resuelve copiando y pegando los comandos del documento Markdown directamente en la terminal [01:00].
Cómo transformar Program.cs en una aplicación worker en .NET
Igual que ocurrió con el servicio Pick Age, el archivo Program.cs deja de exponer un endpoint y pasa a ser una aplicación de tipo worker [01:35]. Este cambio es el que permite que el servicio quede escuchando mensajes de forma continua en lugar de responder a peticiones HTTP.
Por qué crear la clase Worker.cs
Una aplicación worker necesita su propia clase. Dentro del proyecto creas Worker.cs y pegas el código indicado en la documentación. Aquí aparece la diferencia clave respecto al servicio anterior: un método adicional llamado Guardar a la base de datos.
El flujo dentro del worker es el siguiente:
DbContext y persiste con SaveChanges [02:30].¿Qué hace SaveChanges en este worker? Es el mismo método de Entity Framework que usabas en la API monolítica original. Toma el objeto en memoria y lo escribe en la tabla de adultos de SQL.
Es importante notar que no estás inventando lógica nueva: estás fusionando la funcionalidad de la API original con la mensajería de Service Bus.
Cómo organizar Data y Models para el worker de Add Adult
La estructura de carpetas replica la de la API original, lo que mantiene el proyecto consistente y fácil de mantener.
Qué va dentro de la carpeta Data
Crea una carpeta llamada Data y dentro de ella un archivo DataContext.cs. Copia y pega el fragmento del documento. Este archivo contiene únicamente dos cosas:
appsettings.json.Qué va dentro de la carpeta Models
Crea otra carpeta llamada Models y dentro un archivo Adult.cs con A mayúscula. Pega el código del modelo, conservando el namespace completo. Este modelo describe las propiedades del adulto: nombre, apellido, año de nacimiento e imagen.
¿Por qué repetir la estructura Data/Models si ya existía en la API? Porque cada microservicio es independiente. Add Adult debe poder compilar, conectarse a SQL y persistir sin depender del proyecto original.
Con esto, el servicio Add Adult queda listo para escuchar el topic, deserializar el mensaje y guardar el registro. El siguiente paso es probar el flujo completo: enviar un mensaje a Add Member, dejar que pase por Pick Age y verificar que termine guardado por el servicio de adulto [04:30].
¿Ya tienes tu worker compilando? Cuéntame en los comentarios cómo te fue con la conexión al topic.
Walberto Moncada
Cola (Queue)
Tópico (Topic) + Suscripciones (Subscriptions)