我的問題是關於在Amazon EC2上跨多個服務器快速訪問的聚合數據。在ASP.NET應用程序中,我可能會將該數據存儲在Application [「somevar」]變量中,以便所有用戶都可以快速訪問它(在內存中)。跨服務器每個用戶或全局(針對所有用戶)的內存數據(作爲變量)
當我想要收集彙總數據並且其值在所有服務器上相等時,問題就開始了。如果我選擇部署兩臺服務器,用戶可能每次都將數據傳輸到不同的服務器(服務器位於負載均衡器或ElasticBean下),並且如果我計算用戶請求該頁面的次數,則每臺服務器的應用VAR將有不同的值
例如:
服務器1:
應用[ 「計數器1」] = 120
服務器2:
應用[ 「計數器1」] = 130
我想要的是一個在所有服務器上都相同的變量。我想要類似於應用程序的變量中的數據的原因是我希望內存中的數據能夠快速訪問,那麼我可能會將這些數據寫入數據庫。
我想知道的是我該如何做到這一點。我雖然關於使用Amazon ElasticCache,所以即使我在負載平衡器下有10個服務器,我也可以通過API訪問ElasticCache變量,並且無論從哪個服務器訪問memcache變量,它都會獲取/設置相同的變量,因此我可以實現保持跨服務器全局變量的目標。
我想知道這是否是一種好的做法,以及哪裏有更好的方法來實現此功能。
我正在ASP.NET C#和MySQL中開發我的應用程序。還要考慮到一些彙總數據應寫入數據庫,並且我這樣做是爲了防止同時進行大量寫入,並且在數據達到20次寫入後寫入數據,然後將數據寫入數據庫。