由於Azure服務總線將隊列或主題的最大併發連接數限制爲100,是否有一種方法可用於查詢我們的隊列/主題確定有多少個併發連接?Azure服務總線 - 確定活動連接數(主題/隊列)
我們知道我們可以捕獲節流事件,但是非常希望採用主動方法,在系統處於重負載的情況下,我們可以主動增加或減少隊列/主題的數量。
此處的用例是一個等待回覆消息的進程,其中回覆來自長時間運行的進程,訂閱正在使用關聯篩選器來促進發布服務器與訂閱服務器之間的雙向通信。因此,我們必須有一個BeginReceive()函數來等待響應,並且每個這樣的發佈服務器都將在等待時間內消耗一個連接。系統已經在多個主題之間平衡了負載,但是我們需要一種主動創建多少個主題的方式,這樣我們就不會經常受到限制,但同時也沒有多餘的主題用於此目的。
我真的很喜歡你的想法,在BeginReceive嘗試保持併發連接數減少之間有一些睡眠/等待延遲。在這種情況下,這將是完美的,因爲這些過程大部分時間將是30秒到5分鐘。我們可能需要考慮每次睡眠/等待增加的情況,達到設定的限制。這裏的邏輯可能與我們等待的時間越長有關,這是一個更長的過程的可能性越高,等等。這將使最長的人聽得更少,睡得更多。我喜歡! –
這是一種「後退」模式,而且是相當常見的事情。如果它適合你的情況,我肯定會鼓勵使用。 :) – BrentDaCodeMonkey
你知道這種模式是否會導致額外費用? IIRC,存儲隊列收取讀取費用,不管是否傳遞消息。相比之下,服務總線似乎只收取發送,發送或刪除的消息等費用。每個新連接都要收取一筆交易費用嗎? –