簡體   English   中英

Azure Service Bus可伸縮性

[英]Azure Service Bus Scalability

我試圖了解如何使Azure Service Bus主題可擴展以處理來自50多個不同客戶端的> 10,000個請求/秒。 我在微軟發現了這篇文章 - http://msdn.microsoft.com/en-us/library/windowsazure/hh528527.aspx 這為擴展azure服務總線提供了很多好的輸入,比如創建多個消息工廠,異步發送和接收,進行批量發送/接收。

但所有這些輸入都來自發布者和訂閱者客戶端的觀點。 如果運行Topic的節點無法處理大量事務,該怎么辦? 我該如何監控? 如何在多個節點上運行主題? 任何有關的輸入都會有所幫助。

還想知道是否有人使用Topic / Queue進行了任何容量測試,我很想看到這些結果......

謝謝,Prasanna

如果您需要每秒10K或100K或1M或更多請求,請查看高速公路上正在進行的操作。 更多的交通,更多的車道。

通過跨多個實體划分流量,您可以從服務總線中獲得有效的任意流量。 Service Bus提供了許多關於可靠性的保證,例如,一旦我們從您那里獲取消息或者我們分配無間隙序列號,我們不會丟失消息,並且這會對單個主體(如單個主題)產生吞吐量影響。 這就像一條公路車道,只能處理X車/小時。 制作更多車道。

自從這些回復以來,微軟已經發布了大量的新功能。

  1. Azure Auto-Scale可以監視隊列(或CPU負載)中的消息,並啟動或停止實例以維護該目標。
  2. Service Bus引入了Partitioned Queue (和主題)。 這允許您通過多個隊列發送消息,但它們看起來像是您的API的單個隊列。 顯着增加隊列的吞吐量。

在你這樣做之前,我建議你嘗試: -

  • Async和Batched寫入隊列。
  • 更改Reads上的Prefetch參數。
  • 另請查看Receive.OnMessage()以確保您獲得可用的毫秒消息。

這樣可以將你的性能從每秒約5個消息提高到每秒100或1000個。

服務總線有其“容量和配額”的限制,請查看這篇文章,以便對這些內容進行非常好的概述: http//msdn.microsoft.com/en-us/library/windowsazure/hh767287.aspx

我建議您聯系當地的MSFT專家,如果您的用例將突破Azure Service Bus的界限,MSFT在Redmond(世界各地)擁有專門的團隊,可以幫助您大規模地設計和推動這些界限,這是Windows Azure CAT(客戶咨詢團隊)。 他們的目標是解決現實世界中的客戶問題,聽起來你可能有一個......

您需要執行性能並加載測試,以根據您的具體方案獲得上述問題的所有答案。

Azure CAT團隊在服務總線(一般是Azure)上有大量關於容量和負載測試的指標,這些指標並不總是公開可用,所以如果可以的話,請再次聯系...

如果它可以處理那么多請求,那么您希望確保以不會達到主題最大大小的方式接收消息。 您可以在Azure中使用輔助角色的多個實例來偵聽特定訂閱,這樣您就可以更快地處理郵件而不會接近最大大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM