0Pricing
C# Academy · Lección

Conceptos de mensajería

Comprenda los comandos, eventos y colas.

Conceptos de mensajería es una lección gratuita de C# Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C# Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C# Academy incluye 4 lecciones en total.

¿Por qué usar mensajería?

La mensajería asíncrona permite que los servicios se comuniquen sin llamarse directamente. Un productor publica un mensaje y un consumidor lo recoge más tarde. Esto desacopla los servicios, suaviza los picos de carga y mantiene la resiliencia del sistema cuando un consumidor no está disponible temporalmente.

¿Qué es MassTransit?

MassTransit es un framework de .NET que se sitúa sobre brokers de mensajes como RabbitMQ o Azure Service Bus. Gestiona la serialización, el enrutamiento, los reintentos y mucho más, para que pueda centrarse en los mensajes y los controladores, no en la infraestructura del broker.

dotnet add package MassTransit

Comandos frente a eventos

Hay dos intenciones de mensaje importantes. Un comando indica a un servicio específico que haga algo ("ChargePayment"). Un evento anuncia que algo ha ocurrido ("OrderPlaced") a quien le interese. Los comandos tienen un único controlador; los eventos pueden tener varios.

Modelar un comando

Un comando es un tipo de mensaje sencillo, con un nombre imperativo. Envíelo a un único consumidor.

public record ChargePayment(
    Guid OrderId,
    decimal Amount);

Modelar un evento

Un evento se nombra en tiempo pasado y se publica para todos los suscriptores interesados.

public record OrderPlaced(
    Guid OrderId,
    string CustomerEmail);

Colas

Una cola conserva los mensajes hasta que un consumidor los procesa. Es un mecanismo punto a punto: cada mensaje se entrega exactamente a un consumidor, lo que permite distribuir la carga entre varias instancias de consumidores (consumidores en competencia).

Exchanges y topics

Los brokers como RabbitMQ realizan el enrutamiento mediante exchanges. Un productor publica en un exchange, que distribuye el mensaje entre todas las colas vinculadas. Así es como un evento llega a muchos suscriptores.

Cómo los utiliza MassTransit

MassTransit asigna automáticamente los tipos de mensaje a exchanges y colas. Send se dirige a una cola (comando); Publish se dirige a un exchange, de modo que la cola de cada consumidor suscrito recibe una copia (evento).

Desacoplamiento en la práctica

El servicio de pedidos publica OrderPlaced y continúa con su trabajo. De forma independiente, un servicio de correo electrónico y otro de análisis lo consumen. Añadir un nuevo suscriptor no requiere ningún cambio en el productor.

Garantías de entrega

Los brokers suelen ofrecer una entrega al menos una vez: un mensaje puede volver a entregarse después de un fallo. Por ello, los consumidores deben ser idempotentes, de modo que procesar dos veces el mismo mensaje sea seguro.

Cuándo usar mensajería

Recurra a la mensajería cuando el trabajo pueda realizarse de forma asíncrona, cuando necesite desacoplar servicios o para absorber picos de carga. Para obtener una respuesta inmediata a una solicitud, una llamada directa a una API puede seguir siendo más sencilla.

Comprobación rápida

Compruebe los conceptos de mensajería.

Resumen

La mensajería asíncrona desacopla los servicios mediante un broker. MassTransit abstrae brokers como RabbitMQ. Los comandos (imperativos, con un único controlador) se envían a una cola; los eventos (en tiempo pasado, con varios controladores) se publican en un exchange que los distribuye entre los suscriptores. Espere una entrega al menos una vez, por lo que debe hacer que los consumidores sean idempotentes.

Preguntas frecuentes

¿La lección «Conceptos de mensajería» es gratis?

Sí — el texto completo de «Conceptos de mensajería» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C# Academy, actualiza a CoddyKit PRO. El curso de C# Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Conceptos de mensajería»?

Comprenda los comandos, eventos y colas. Practicas C# Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar C# Academy?

No se requiere experiencia previa. C# Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Conceptos de mensajería»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de C# Academy?

Sí. Cada lección de C# Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Conceptos de mensajería
  2. Producción y consumo de mensajes
  3. Sagas y workflows
  4. Gestión de errores y reintentos
← Volver a C# Academy