Actualmente estoy haciendo análisis y diseño para una nueva arquitectura de bus de mensajes en mi compañía. Intenté con MSMQ hacer algo como esto en el pasado y funciona bien y estaba pensando en hacer lo mismo otra vez para este proyecto, pero usando WCF como la API en lugar de usar la API System.Messaging. ¿Alguien ha tenido experiencia con MSMQ en WCF? ¿Es más fácil usar la API System.Messaging? ¿Cuáles serían algunos beneficios de usar WCF sobre System.Messaging o viceversa?Implementación de una arquitectura de Message Bus
Respuesta
en mi humilde opinión, con tantos buenos, arquitecturas de bus flexibles y probados para elegir (NServiceBus, Mass Transit, Rhino Service Bus), llevando a cabo su propia sería un gran NIH. No es una tarea trivial.
Udi lo describe muy bien en this message.
el Apache ActiveMQ (open source) intermediario de mensajes también tiene un cliente .NET:
Junto con Apache y Apache Camel ServiceMix, los patrones de integración empresarial y sistemas de bus de servicios empresariales son fáciles de configurar .
Lo siento, llegando muy tarde a esto, pero espero que mi respuesta sea útil.
Tanto WCF Queuing como System.Messaging son envoltorios sobre las API de MSMQ. WCF es más sofisticado y complejo, pero tiene los siguientes beneficios:
- Una vista OO de los procesos de negocio de su aplicación en lugar de su plomería de comunicación.
- Encriptación y autenticación de mensajes de extremo a extremo de manera gratuita. System.Messaging solo admite cifrado en el cable, no en la tienda.
- Si lo desea, puede alojar dentro de IIS en lugar de crear su propio host personalizado.
- Correlación de mensajes de forma gratuita. Esto le permite agrupar mensajes en sesiones automáticamente.
- Dosificación transaccional gratuita.
Con WCF no necesita tener IIS instalado para proporcionar ningún tipo de servicio. Respuesta engañosa. – argatxa
@argatxa: Estoy diciendo que con WCF puede alojar dentro de IIS. Estoy de acuerdo en que no necesita hospedarse en IIS. Editaré mi respuesta para reflejar esto. – RoadWarrior
@RoadWarrior Su primera comparación es correcta; sin embargo, es incorrecta en otros. 1) Tanto MSMQ como WCF tienen ID de correlación. 2) MSMQ tiene transacciones 3) MSMQ usa autenticación y autorización. También podría argumentarse que MSMQ es más difícil que WCF simplemente porque es una API de MOM – MickyD
- 1. Implementación de ESB (Enterprise Service Bus) en un lenguaje funcional
- 2. Implementación de una capa de servicio en una arquitectura MVC
- 3. Implementación correcta de la arquitectura MVC
- 4. Message Buses y MOM: ¿lo mismo?
- 5. .net recomendaciones de bus de servicio?
- 6. ¿AMQP es adecuado como bus de software intra e intermáquina?
- 7. Enterprise Service Bus, .NET Service Bus, NServiceBus y las ruedas del bus
- 8. Error de bus: 10 Error
- 9. Rubí Implementación de RSA Data Security, Inc. MD5 Message-Digest Algorithm
- 10. Ver el contenido de una cola de Azure Service Bus
- 11. D-Bus: ¿hay algo así como un "sniffer D-Bus"?
- 12. Solución de problemas de error de bus
- 13. El bus GStreamer envía Ninguno mensaje
- 14. Azure Service Bus velocidad
- 15. Enterprise Service Bus Terminology
- 16. Azure Service Bus Escalabilidad
- 17. Error de bus vs Error de segmentación
- 18. Algoritmo de transporte público de bus
- 19. Boost Message Queue
- 20. Rails Notification Message plugin?
- 21. Message Queue o Scheduler
- 22. Github commit message tagging
- 23. D-Bus threading model
- 24. gcc error message repository
- 25. mq_receive: message too long
- 26. Message Queue vs Task Queue difference
- 27. Java Email message Parser?
- 28. Github commit message links
- 29. DataContract vs Message Contrato
- 30. Microsoft Message Queue: indicador de prioridad o una cola separada?
mausch gracias por la información sobre los sistemas de bus de mensajes que ya existen. ¡No sabía que ya había sistemas como este abiertos al público! – heartlandcoder
¿Cómo es esta una respuesta a la pregunta de la OP sobre qué es lo que debe usar básicamente ** MSMQ ** o ** WCF con enlace MSMQ **? ** Respuesta de RoadWarriors ** a continuación, creo que está más en línea con la pregunta del OP. – MickyD