Estoy aprendiendo sobre NServiceBus y MSMQ. Me dijeron que las colas transaccionales en MSMQ son MALAS y que usarlas es realmente malo para el rendimiento. ¿Alguien sabe por qué? Supongo que esto proviene de la idea de que usa DTC y todos saben que el DTC no es realmente una solución escalable. Me parece que hay un par de razones por las que MSMQ con NServiceBus no es tan malo, pero no sé si entiendo cómo funciona completamente. En cuanto a esta lógica, no puedo pensar en 3 lugares donde NServiceBus podría operaciones con el fin de obtener la entrega garantizada:NServiceBus: ¿Las transacciones MSMQ no son MALAS?
- Al enviar un mensaje a través de la red, es posible que desee utilizar una transacción para asegurar que el mensaje tiene Llegó a la cola remota antes de descartarla.
- Al leer un mensaje de una cola local, es posible que desee asegurarse de que se maneja con éxito antes de descartarlo.
- Al publicar un mensaje para varios suscriptores, es posible que desee asegurarse de que llegue a TODOS ellos antes de descartarlo. (Realmente espero que esto NO sea lo que hace NServiceBus)
¿Alguien me puede aclarar cómo NServiceBus hace esto?
Pueden ser un poco desafiados por el rendimiento, pero yo no los llamaría MALOS. Tener una operación ser transaccional es generalmente una "cosa buena" (tm) –
El envío de mensajes transaccionales de MSMQ no usa DTC. El envío de mensajes transaccionales MSMQ y escribir el hecho en un servidor SQL (como un ejemplo), sin embargo, utilizaría DTC. –