我需要将一些数据保存在服务器的缓存中。服务器处于群集状态,呼叫可以转到其中的任何一个。在这种情况下,最好使用像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