簡體   English   中英

無狀態負載平衡應用程序導致數據庫瓶頸

[英]Stateless load balanced application leads Database bottlenecks

我正在閱讀有關應用程序的scalabilityperformance ,並碰到一條線,指出

“因此,從應用程序中刪除狀態會大大增加數據庫負載”

我無法理解這一行,這是為什么:

  1. 可以說我正在使用www [或rest]並將請求發送到stateless Web服務器。
  2. 如果我的請求需要數據庫操作,那不等於任何stateful請求嗎?

無狀態請求增加數據庫負載有什么問題?

好吧,我不知道引用內容的上下文。 您可以刪除(或最小化)應用程序的狀態,但不能在所有情況下都刪除。 首先,在這些情況下,您可以做的是將狀態移動到數據庫(或企業緩存(如redis))-以某種方式持久化狀態對象。 因此,與節點包含數據的情況相比,每個請求從DB提取更多的數據。

我們嘗試在我當前的項目中獲得以毫秒為單位的響應時間。 刪除狀態意味着要加載大型DDD'集合,這會使每個請求的秒請求減慢數秒,並帶來額外的數據庫負載-這是引用語句的結果。

我認為您引用的陳述不正確。

此約束導致可見性,可靠性和可伸縮性的屬性。 可見性得到了改善,因為監視系統不必為了確定請求的全部性質而僅查看單個請求數據。 可靠性得到改善,因為它簡化了從部分故障中恢復的任務[133]。 可伸縮性得到了改善,因為不必在請求之間存儲狀態,這使得服務器組件可以快速釋放資源,並進一步簡化了實現,因為服務器不必管理跨請求的資源使用情況。

根據Fielding論文 ,從通信中刪除狀態會增加可伸縮性,並且有必要定義REST的分層系統約束,這會進一步增加可伸縮性。 明確說明:您可以在系統中的任何位置添加緩存,因此,數據庫負載將減少。

暫無
暫無

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

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