比方說,我有一個ClientRequestMessage
消息,其中包含對特定Client
的請求。網絡應用程序將生成這些請求,並且需要將它們發送到正確的Client
進行處理。我可以爲此考慮一些選擇。將NServiceBus消息路由到特定客戶端的最佳方式是什麼?
- 我能有一個隊列,所有的消息去和特定的客戶端處理程序檢查屬性(如
ClientId
),以決定他們是否關心它。儘管如此,這在許多層面上都感覺不對。 - 我可以向所有客戶發佈消息,他們可以決定他們在處理過程中是否關心它。這看起來像是太多的流量,並且浪費了每個客戶的時間處理消息,儘管他們不應該關心。
- 我可能有客戶端特定的隊列,這些消息也被路由。這對我來說是最好的,但我不確定如何去做。我想保持簡單並避免客戶端特定的消息類型,但我不知道如何告訴NServiceBus「客戶端A將其發送到客戶端A的隊列,並且客戶端B將其發送到客戶端B的隊列」。
所以我的問題是,什麼是最好的(最有效的?最容易管理?)的方式來設置它?我很確定我需要使用經銷商,但不是積極的想法,我會問。
紅利問題:
假設每個客戶端都有多個處理程序。我如何確保其中只有一個人處理給定的消息?我需要每個客戶的分銷商嗎?
你最終使用了什麼解決方案? – Charlino
我仍在努力解決它。我對發佈到所有方法都不是很滿意,因爲這些是客戶端特定的隊列,理想情況下他們無法訪問彼此的消息。 –