这是一个体系结构问题。 我有一个拥有巨大内存的服务器,用作大对象缓存持有者的想法。客户发送“动作”到这个服务器(像搜索人物,年龄< 13)。然后,这台机器(使事情复杂化,让这个服务器更多的实例以及为每个实例分发Persons列表来保存一半的数据,并且这两个实例都可以在查询 - MapReduce样式上工作)然后返回符合条件的人员。 其他“动作”将是一个特定的缓存刷新,或者说“更新人员id = 3以实例...”等。实现缓存服务器的体系结构问题
猜猜这是Oracle Coherence的最佳做法,但我想知道是否有人有其他开源解决方案或想法。
一个简单的解决方案是将EhCache与Hibernate结合使用,但我不知道用什么协议将它变成服务器(我将发送操作作为“服务器”上的调用方法发送,而方法返回与查询匹配的人员列表)。也许可以使用简单的RMI。我还没有确信,我想要一个更经过验证的解决方案,一个框架,同时拥有故障转移,自动发现和映射减少功能也不错。我想我可以在我的EhCache解决方案上封装GridGain并解决这个问题?这将是矫枉过正的(我可以坚持只有一个这个数据网格服务器的实例)。
其他选项将是兵马俑。关键是我对Terracotta了解不多,只是你可以在实例之间共享数据。如果我将流程中的元素添加到分布式缓存中,并且在另一个流程中存在缓存的本地副本,并且只有差异被复制?这对于每个进程都会查询本地缓存并且速度非常快的事实都很好,但这也意味着客户端进程中使用的内存很多。
那么有人有什么想法?
谢谢。