Al momento de escribir este artículo, MSMQ (Microsoft Message Queuing) y su librefía System.Messaging no está disponible para ejecutarse en entornos .Net Core 5. Se puede consumir en .Net Core 5 pero el sistema debería estar instalado en Windows. Ver MSMQ is dead.
Entonces, ¿cual es la mejor forma de implementar una cola de mensajes / tareas en .Net Core 5?
Opciones para analizar:
- RabbitMQ - AMQP (Advanced Message Queuing Protocol)
- Apache Kafka - ¿Qué es Apache Kafka? (Linux) - Apache Kafka
- NServiceBus - A simple explanation of NServiceBus and why you need it
- Kafka vs RabbitMQ
Ver documentos de Microsoft:
- Microservicios de .NET: Arquitectura para aplicaciones .NET en contenedor
- Comunicación en una arquitectura de microservicio
- Comunicación asincrónica basada en mensajes
Conclusiones
Para comunicación entre microservicios se recomienda utilizar el protocolo AMQP. Es un protocolo abierto y probado funcionando hace largo tiempo. La implementación más exitosa es la de RabbitMQ que además también se puede instalar en Windows.