¿Cuáles son las diferencias esenciales entre publicar un mensaje usando Bus.Publish y enviar un mensaje usando Bus.Send? Estoy buscando entender cómo difieren y también cuándo debo elegir usar uno sobre el otro.Diferencia entre Bus.Publish y Bus.Send en NServiceBus?
Respuesta
La publicación se utiliza para notificar a múltiples suscriptores de un evento en particular. Un punto final de publicación tendrá almacenamiento de suscripción para identificar a dónde enviar mensajes. El envío se usa generalmente para emitir un comando a un punto final. Un comando le dice al punto final que haga algo y no debe esperar una respuesta (aunque a veces quiere una respuesta y NSB lo admite).
El motivo por el que no ve un destino para Enviar() es que especifica el destino a través de la configuración. En su app.config mapeará los tipos de mensajes (un conjunto completo o una clase) a un destino. Cuando lo haces, no tienes que proporcionar el destino.
Bus.Publish: se utiliza cuando no se sabe hacia dónde se dirige el mensaje (0 a muchos suscriptores).
Bus.Send: cuando está enviando un mensaje a un controlador específico (cliente a servidor).
Vale, pero entonces ¿por qué algunos Enviar() no sobrecargas tienen un destino? Confundido ... –
Tomamos el significado semántico un poco más allá. Publicar es un evento, y tratamos los eventos como "hey, algo acaba de suceder. No me importa lo que hagas con esta información, pero aquí tienes", mientras que tratamos a Bus.Send como comandos, lo que significa "Oye, Necesito que hagas algo, y me preocupo por lo que sucede como resultado (y, por lo tanto, sé a quién se lo envío) " – Matt
@SeanKearon Sí, publicaste esto hace 4 años, pero para cualquier otra persona. El destino del comando de envío se puede definir en la configuración. Realmente no desea información de configuración de código, por lo que puede usar la forma más simple de Enviar() que no toma el destino como un parámetro si está definido en su configuración. – XenoPuTtSs
ususally Context.Publish() es para la publicación Tipo de evento y Context.Send() es para Tipo de comando
Bienvenido a SO. Parece que falta algo en tu respuesta? –
yest acabo de editarlo .gracias – Vakar
- 1. Prueba Bus.Send en una aplicación que utiliza NServiceBus
- 2. sendonly en NServiceBus
- 3. NServiceBus: pros y contras de la utilización de NServiceBus Distribuidor
- 4. Diferencia entre. y: en Lua
- 5. Diferencia entre == y === en JS
- 6. Diferencia entre '' y "" en Python
- 7. Diferencia entre '.' y "." en java
- 8. MySQL: diferencia entre ', `,' y"
- 9. Diferencia entre. y #
- 10. Diferencia entre & y &
- 11. ¿Diferencia entre == y caso?
- 12. La diferencia entre $ * y $ @
- 13. Diferencia entre objeto y *?
- 14. ¿Cómo uso Moq para probar llamadas a NServiceBus IBus.Publish()?
- 15. VBA: Diferencia entre y y +
- 16. Diferencia entre "y" y "donde" en une
- 17. Diferencia entre "y" y && en Ruby?
- 18. NServiceBus MSDTC aflicciones
- 19. Diferencia entre -Wconversion entre gcc y g ++
- 20. ¿Se superponen WF y nServiceBus? ¿Cómo? ¿Y cuál usar?
- 21. Diferencia entre DataSource y DataSet
- 22. Diferencia entre SwingWorker y SwingUtilities.invokeLater
- 23. Diferencia entre java.exe y javaw.exe
- 24. Diferencia entre RASPHONE.exe y RASDIAL.exe
- 25. Diferencia entre jQuery.one() y jQuery.on()
- 26. Diferencia entre viewDidLoad y viewDidAppear
- 27. diferencia entre $ .getJSON y $ .get
- 28. ¿Diferencia entre viewbag y viewstate?
- 29. ¿Diferencia entre sqlplus y sqldeveloper?
- 30. Diferencia entre web.config y machine.config?
Gracias Adam - eso tiene sentido, no veo el papel que juega la configuración. –
Err, el comentario anterior debería haber sido leído: Gracias Adam, eso tiene sentido ahora que veo el papel que desempeña la configuración. –
Una de las sustituciones para Bus.Send es Bus.Send (destino de cadena, mensaje), por lo que puede usar Bus.Send para enviar a una cola específica. – RandomUs1r