2016-07-28 90 views
1

背景Azure的服務總線訂閱未從主題

得到任何消息,我在Azure的服務總線這是越來越百萬封郵件從客戶端(web應用程序)的話題(T1)。有3個訂閱(S1,S2,S3)沒有任何由3個不同的後臺進程(worker角色)創建的過濾器。

問題

當工人的角色正在運行,只有第一個訂閱(S1)似乎得到所有的任何消息,然後休息(S2和S3)要麼不接受任何東西或得到他們的一小部分。所有訂閱者都以相同的方式創建,具有相同的確切設置並且沒有過濾器。

服務總線資源管理器示出了用於S1(〜100K)正確的消息計數,但爲S2和S3的活動消息計數是非常非常低(小於10 ,通常約爲0)。在我看來,不知何故這些消息被刪除,甚至沒有得到客戶的接收。

什麼是最好的方式來調查什麼是錯的,爲什麼消息數量不匹配訂閱者之間。有什麼可能是錯誤的建議?

+0

如果沒有過濾器,所有的潛艇應該得到所有消息。但是這有點擊敗了話題的整個觀點。在閱讀來自訂閱的消息之後,您將刪除它們。 ? – Aravind

回答

1

檢查訂閱。訂閱支持他們自己的DefaultMessageTimeToLive。默認情況下,它被設置爲最大。查看您用來創建訂閱的代碼,可能是使用QueueDescription來自定義 DefaultMessageTimeToLive和其他值。

此外,啓用EnableDeadLetteringOnMessageExpiration以查看消息是否過期。

檢查MaxDeliveryCount。如果消息太低而消息未成功處理,則交付次數將超過最大值,並且消息將消失或停頓。

除此之外,如果過濾往上衝,就可以找到了通過使EnableDeadLetteringOnFilterEvaluationExceptions

如果沒有什麼幫助,張貼鏈接到GutHub再現代碼或到位桶,使人們可以看到發生了什麼做了。

相關問題