He visto muchas aplicaciones de socket en las que hay uso de MSMQ. Pero cuando entre en detalles, creo que podemos hacerlo sin MSMQ también, por lo que quiero saber cuál es el beneficio clave de MSMQ. ¿Por qué alguien debería usar MSMQ en su propia aplicación?Beneficios clave de MSMQ
Respuesta
MSMQ es una gran pieza de Windows. Es básicamente un message-oriented middleware que ayuda mucho en algunas arquitecturas de software.
Esto trata principalmente el caso de uso común de procesamiento de mensajes asíncronos: usted tiene un servicio Service1
que comunica (envía mensajes) con otra parte de la arquitectura de su software, digamos Service2
.
Problema principal: ¿qué ocurre si Service2
deja de estar disponible de repente? ¿Se perderán los mensajes? Si usa MSMQ, no: Service1
enviará mensajes a una cola, y Service2
se descolará cuando esté disponible.
MSMQ resolverá siguientes problemas comunes:
- indisponibilidad temporal de un servicio: los mensajes se conservan en el disco y serán quitados de ella cuando el servicio esté disponible de nuevo, por lo hay mensajes se pierden
- como es totalmente asincrónico, ayudará mucho en el caso de puntual pico de carga: su
Service2
no morirá bajo la carga pesada, solo dequeará y procesará los mensajes, uno tras otro
Pros de MSMQ vs otro orientado a mensajes middleware:
- libre y construido en (incluido en Windows)
- luz
- buena integración con otros productos de Microsoft (por ejemplo, no es el
System.Messaging
espacio de nombres en .Net para tratar con MSMQ) - capacidades de supervisión (utilizando contadores perfmon: número de mensajes recibidos por segundo ...)
- colas transaccionales
- persistencia en el disco para que los mensajes no se pierden nunca
- disponible a través de la red (colas remotas)
¿Qué pasa si MSMQ de repente deja de estar disponible? no caemos en la misma trampa? – Storm
@ ken2k ¿Para otorgar disponibilidad de ambos servicios, cada uno de ellos debe tener un MSMQ en el mismo servidor? ¿Entonces el Servicio 2 leería del MSMQ en el servidor del Servicio 1 y viceversa? –
esta fue una gran respuesta, no puedo ver por qué @ ken2k no ha respondido a estos comentarios. –
- 1. ¿Cuáles son las características/beneficios clave de RIA Services?
- 2. ¿La palabra clave restringir proporciona beneficios significativos en gcc/g ++
- 3. Escalabilidad MSMQ
- 4. Monitoreo de MSMQ
- 5. Beneficios de referencia débiles
- 6. los beneficios de awakeFromNib?
- 7. Beneficios de matrices
- 8. Java y MSMQ
- 9. MSMQ para persistencia?
- 10. ¿Es seguro MSMQ thread?
- 11. Privado o público MSMQ
- 12. MSMQ y registro
- 13. ¿MSMQ está obsoleto?
- 14. Servicio Msmq y WCF
- 15. MSMQ consumidor de la competencia
- 16. suscríbase a msmq
- 17. TIBCO Rendezvous y MSMQ
- 18. Beneficios de la Programación Asertiva
- 19. Beneficios de MVVM sobre MVC
- 20. ¿Beneficios de usar un constructor?
- 21. Beneficios del esquema de aprendizaje?
- 22. Beneficios de la URL REST
- 23. Los beneficios de JavaScript Prototype
- 24. WCF and MSMQ failure handling
- 25. Multidifusión, Mensajes, ActiveMQ vs. MSMQ?
- 26. WCF Publicar/Suscribir con MSMQ
- 27. MSMQ COM API en C#
- 28. MSMQ está disponible en Azure
- 29. WCF & MSMQ & TransactionScope long process
- 30. Escribiendo a un MSMQ remoto
¿Está usted preguntando ¿por qué utilizar MSMQ para poner en cola el mensaje en lugar de algún otro mecanismo de puesta en cola, o por qué cola de mensajes en lugar de simplemente de paso ellos directamente al destino? –
Algunas pistas que puedes encontrar aquí también http://bytes.com/topic/c-sharp/answers/254742-when-where-i-should-use-msmq –