我需要將一些數據保存在服務器的緩存中。服務器處於羣集狀態,呼叫可以轉到其中的任何一個。在這種情況下,最好使用像EhCache這樣的複製/分佈式緩存或使用LB的會話粘性。使用複製緩存vs LB粘性會話
如果數據大小(在高速緩存中)很大,是不是會對所有服務器的序列化和反序列化產生性能影響?
此外,在分佈式緩存的情況下,這樣的緩存有效的最佳服務器數量是什麼。由於數據被複制到所有節點,並且節點數量是20,所以它的主節點可以在所有節點之間進行復制。我的意思是,每個節點都會收到其他19的通知,並將更新修改到其他19。
感謝Zahorak的回覆。但我的問題是圍繞複製緩存而不是分佈式緩存。我認爲與分佈式緩存相比,複製的緩存不會有太大的擴展。如你所說,更好的方法是使用LB粘性會話或分佈式緩存。 – 2014-08-30 04:54:55
基本上EhCache,Hazelcast和Infinispan正在嘗試解決類似的問題,不同之處在於EhCache通過完全複製(如你所寫)來完成它,而Hazelcast有一個DHT。 Infinispan支持這兩種實現。對於完全複製緩存的限制可以很容易地通過一個對象的大小以及您在計算機上有多少可用空間來計算,因爲添加新計算機不會使緩存更快。我已經更新了我的回答。 – peter 2014-08-30 08:34:11
我不認爲eh緩存必須被複制。這是一個配置。可以選擇具有相互複製冗餘的節點集合,以及具有不同配置的ID標識的不同「緩存」。所以可以保留一些被複制的信息和其他不是的信息。決定複製什麼以及不依賴於信息和業務需求的大小 – tgkprog 2014-09-08 12:12:50