如果由於崩潰或其他異常終止(實例重新啓動等)而不再有任何發佈者或訂閱者讀取或寫入隊列,主題或訂閱。),是否Queue/Topic/Subscription有效地成爲孤兒?檢測並刪除Azure服務總線上的孤立隊列,主題或訂閱
我通過創建幾個隊列,然後終止應用程序來測試它。那些隊列很長一段時間還在服務總線上。看起來他們會永遠呆在那裏。如果我們想要這種行爲,那將是美好的,但在這種情況下,我們不這樣做。
我們如何檢測並刪除這些隊列,主題和訂閱?它們將計入Azure限制等,並且每次實例重新啓動/打補丁/崩潰時,我們都不會有這些孤立的進程。
如果它有助於使問題更清楚,這是一個獨特的情況,其中,隊列/主題/收藏有着特殊的名稱,或特殊的過濾器,以及一組非常有限的出版商(1)和用戶(1)在有限的時間內。這不是我們希望生存的情況。這些是特定於實例的響應渠道。無論我們使用隊列還是訂閱都不重要。如果實例消失,那麼需要該隊列(或訂閱)。
這是一個解決方案的一部分,每個Web角色都有一個專用的響應通道來監視。在任何時候,這個web角色可能會有數十個請求通過其他消息通道(隊列/主題)等待,並且正在等待多線程的答案。我們需要響應返回到放置消息的線程,以便Web角色可以響應調用者。在這種情況下,僅憑基於機器的訂閱是不好的,因爲它將接收其他線程的消息。我們需要每個發佈線程來建立一個專用的響應通道,這樣該通道上唯一的事情就是該線程的響應。
即使我們使用訂閱(通過某種與實例相關的過濾器)在訂閱上進行長輪詢接收操作,但如果Web角色實例死亡,該訂閱將成爲孤兒,是否正確?
這個問題可以這樣歸納如下: 如果沒有更多的發佈者或訂閱者進入隊列/主題/訂閱,那麼該服務將被有效地孤立。這些孤兒如何被發現並清理?
我們可以說明您正在討論Azure中的隊列(SB中的雲)或Windows Server隊列服務總線(Service Bus 1.0 Beta)嗎? – user728584
這是關於Azure的。 –