使用Bus.Publish發佈消息和使用Bus.Send發送消息之間有什麼本質區別?我期待了解它們之間的差異,以及何時我應該選擇使用另一個。NServiceBus中Bus.Publish和Bus.Send之間的區別?
25
A
回答
28
發佈用於通知多個訂閱者特定事件。發佈端點將具有訂閱存儲以標識向何處發送消息。發送通常用於向端點發送命令。一條命令告訴端點做某事,不應該期望得到答覆(儘管你有時候確實需要答覆,而NSB支持這種答覆)。
您看不到Send()的目的地的原因是您通過配置指定了目的地。在你的app.config中,你將把消息類型(整個程序集或類)映射到目標。當你這樣做時,你不必提供目的地。
14
Bus.Publish:當您不知道消息的去向(0到多個訂閱者)時使用。
Bus.Send:當您發送消息到特定處理程序(客戶端到服務器)時。
0
後容易Context.Publish()是用於發佈事件類型和Context.Send()是命令類型
相關問題
- 1. IWantToRunAtStartup和IWantToRunWhenTheBusStarts在NServiceBus之間的區別?
- 2. 測試Bus.Send使用NServiceBus
- 3. 之間的〜/和的區別../
- 4. '#','%'和'$'之間的區別
- 5. {!!之間的區別!!}和{{}}
- 6. '+ ='和'= +'之間的區別?
- 7. 「。+」和「。+?」之間的區別
- 8. .eq之間的區別。和==
- 9. #。/和#之間的區別。 ./
- 10. !=和!之間的區別==
- 11. 「%〜dp0」和「。\」之間的區別?
- 12. | =和^ = css之間的區別
- 13. 之間的區別。和#
- 14. ==和case之間的區別?
- 15. 「**/* /」和「** /」之間的區別?
- 16. jQuery - '。'之間的區別和「#」
- 17. 「?1」和「?」之間的區別
- 18. `%in%`和`==`之間的區別
- 19. fmod和%之間的區別
- 20. 之間的區別:+和:+
- 21. make中的「$(shell ...)」和「$$(...)」之間的區別
- 22. python中的[]和[,,]之間的區別
- 23. javascript中的/ * * /和//之間的區別
- 24. $之間的區別?和PowerShell中的$ LastExitCode
- 25. jQuery中的$和$()之間的區別
- 26. C中的/ +和+之間的區別?
- 27. 類區域和堆之間的區別
- 28. SPFile和PublishingPage類別之間的區別
- 29. 子類和類別之間的區別?
- 30. System.Timers.Timer Enabled = true和.Start()之間的區別Enabled = true和.Start()之間的區別
好吧,既然這樣,爲什麼有些send()方法重載沒有一個目的地是哪裏?困惑... – 2011-02-08 23:13:11
我們更深入地理解語義。發佈是一個事件,我們將事件視爲「嗨,剛剛發生的事情,我不在乎你如何處理這些信息,而是在這裏」,我們將Bus.Send視爲命令,其意思是「嘿,我需要你做一些事情,並且我關心結果會發生什麼(因此知道我要發送給誰)「 – Matt 2014-03-05 16:35:34
@SeanKearon是的,你在4年前發佈了這個,但是對於其他任何人。 send命令的目標可以在配置中定義。你並不是真的想要你的代碼配置信息,所以你可以使用更簡單的Send()方法,如果它是在你的配置中定義的,它不會將目的地作爲參數。 – XenoPuTtSs 2014-11-13 13:50:48