集群中的 JGroups ReplicatedHashMap

JGroups ReplicatedHashMap in a cluster

我的基于 Spring 的 Web 应用程序部署到具有粘性会话的 Tomcat 集群(4 个以上节点)中进行生产。几年后最大节点数不会超过8-10个。

我需要缓存一些数据(主要是配置),以避免访问 Oracle。由于此数据的性质主要是配置,因此我认为读取与写入的比率为 999999 / 1。

我不想使用 Infinispan/Hazelcast/Redis 等成熟的缓存解决方案,因为它会增加产品的操作复杂性,并且要求缓存一些小的、主要是只读的数据(比方说最多几百千字节)

起初,我想自己实现一个简单的复制地图,然后我看到 [JGroups][1] 附带 [ReplicatedHashMap][1]。我认为它适合我的需要,但我不确定我是否遗漏了什么。

我还应该考虑什么? 有人在生产中使用过吗?

ReplicatedHashMap 是 700 行中的一个 class,因此它不是特别复杂,并且使用已在生产中使用了十年的 JGroups。

如果您需要简单的东西,不需要 transactions/overflow-store 等,那么它可能适合您的工作。请注意,您可以对其进行修改 and/or 以 RHM 为模板编写自己的代码。

RHM 将所有数据复制到所有节点,所以如果你有很多节点(你没有),或者你的数据很大,那么 ReplCache 可能是更好的选择。