Sự khác nhau cơ bản giữa xuất bản tin nhắn bằng Bus.Publish và gửi tin nhắn bằng Bus.Send là gì? Tôi đang tìm cách hiểu chúng khác nhau như thế nào và khi nào tôi nên chọn cách sử dụng cái kia.Sự khác biệt giữa Bus.Publish và Bus.Send trong NServiceBus?
Trả lời
Xuất bản được sử dụng để thông báo cho nhiều Người đăng ký của một sự kiện cụ thể. Điểm cuối xuất bản sẽ có bộ nhớ đăng ký để xác định vị trí gửi tin nhắn đến. Gửi thường được sử dụng để phát hành một lệnh đến một điểm cuối. Một lệnh là nói cho điểm cuối để làm một cái gì đó và không nên mong đợi một câu trả lời (mặc dù đôi khi bạn muốn có một trả lời và NSB hỗ trợ này).
Lý do bạn không thấy điểm đến cho Gửi() là bạn chỉ định đích thông qua cấu hình. Trong app.config của bạn, bạn sẽ ánh xạ các loại tin nhắn (toàn bộ một hội đồng hoặc một lớp) đến một đích. Khi bạn làm như vậy, bạn không phải cung cấp điểm đến.
Bus.Publish: được sử dụng khi bạn không biết vị trí của thông báo (0 cho nhiều người đăng ký).
Bus.Send: khi bạn đang gửi thư đến một trình xử lý cụ thể (máy khách đến máy chủ).
Được rồi, nhưng sau đó tại sao một số Gửi() quá tải không phải là một điểm đến? Bối rối ... –
Chúng tôi lấy ý nghĩa ngữ nghĩa hơn một chút. Xuất bản là một sự kiện, và chúng tôi đối xử với các sự kiện như "này, một cái gì đó vừa xảy ra. Tôi không quan tâm bạn làm gì với thông tin này, nhưng ở đây bạn đi", khi chúng ta xử lý Bus.Gửi như lệnh, có nghĩa là "Này, Tôi cần bạn làm điều gì đó, và tôi quan tâm đến những gì xảy ra như vậy (và do đó biết tôi gửi nó cho ai) " – Matt
@SeanKearon Có, bạn đã đăng 4 năm trước, nhưng với bất kỳ ai khác. Điểm đến của lệnh gửi có thể được định nghĩa trong cấu hình. Bạn không thực sự muốn trong thông tin cấu hình mã của mình, vì vậy bạn có thể sử dụng biểu mẫu Send() đơn giản hơn, không lấy đích làm tham số nếu nó được xác định trong cấu hình của bạn. – XenoPuTtSs
ususally Context.Publish() là dành cho xuất bản Loại sự kiện và Context.Send() là dành cho Loại lệnh
Chào mừng bạn đến với SO. Có vẻ như có điều gì đó thiếu trong câu trả lời của bạn? –
yest tôi vừa chỉnh sửa nó .thanks – Vakar
- 1. Testing Bus.Send trong một ứng dụng sử dụng NServiceBus
- 2. Sự khác biệt giữa. và #
- 3. Sự khác biệt giữa $ (...) và `...`
- 4. Sự khác biệt giữa = và: =
- 5. Sự khác biệt giữa $ * và $ @
- 6. Sự khác biệt giữa ". +" Và ". +?"
- 7. Sự khác biệt giữa "**/* /" và "** /"?
- 8. Sự khác biệt giữa '.' và "." trong java
- 9. Sự khác biệt giữa. và: trong Lua
- 10. sự khác biệt giữa 'và "trong JavaScript?
- 11. Sự khác biệt giữa! và !! trong yaml?
- 12. Sự khác biệt giữa $ @ và $! trong perl
- 13. Sự khác biệt giữa SwingWorker và SwingUtilities.invokeLater
- 14. Sự khác biệt giữa fgets và fscanf?
- 15. Sự khác biệt giữa self.navigationController.navigationItem và self.navigationItem
- 16. sự khác biệt giữa $ .getJSON và $ .get
- 17. Sự khác biệt giữa WebApiConfig.cs và RouteConfig.cs
- 18. Sự khác biệt giữa __construct() và init()
- 19. Sự khác biệt giữa RASPHONE.exe và RASDIAL.exe
- 20. Sự khác biệt giữa viewbag và viewstate?
- 21. sự khác biệt giữa query.list và query.iterate
- 22. Sự khác biệt giữa Window.load và document.readyState
- 23. Sự khác biệt giữa URL và URI?
- 24. Sự khác biệt giữa Z3 và coq
- 25. Sự khác biệt giữa textMultiLine và textLongMessage
- 26. Sự khác biệt giữa modelAttribute và commandName
- 27. Sự khác biệt giữa idl và odl
- 28. Sự khác biệt giữa MKCoordinateSpan và CLLocationCoordinate2D
- 29. Sự khác biệt giữa Monitor.Pulse và Monitor.PulseAll
- 30. Sự khác biệt giữa inproc và outproc
Cảm ơn Adam - điều đó có nghĩa là tôi không thấy vai trò của cấu hình phát. –
Err, nhận xét ở trên nên đã đọc: Cảm ơn Adam - điều đó có ý nghĩa bây giờ tôi thấy vai trò của cấu hình phát. –
Một trong các ghi đè cho Bus.Send là Bus.Send (chuỗi đích, thư), vì vậy bạn có thể sử dụng Bus.Gửi để gửi đến một hàng đợi cụ thể. – RandomUs1r