【发布时间】:2014-08-12 23:16:25
【问题描述】:
我有一个来自 GridGain 6.1.9 的概念证明,它满足我们的要求,在此之前我们已经评估了 EhCache 和 InfiniSpan,现在我们正在评估 GridGain。
我已经编写了下面的示例代码,用于在计算机之间执行共享缓存(具有自己的单独 JVM),这将有一个缓存与它们共享。
try ( Grid grid = GridGain.start("{GRIDGAIN_HOME}/examples/config/example-cache.xml") ) {
final GridCache<Integer, String> cache = grid.cache("partitioned");
String oldVal = cache.put(1, "1");
boolean success = cache.putx(2, "2");
success = cache.putxIfAbsent(3, "3");
System.out.println("Current Value : " + cache.get(3) );
}
我使用了 GridGain 包中的“example-cache.xml”配置文件。只有“分区”缓存配置(其他缓存被删除)。我还添加了“GridMulticastDiscoverySpi”,以便在多台/分布式计算机中自动发现节点。
我用过这个Blog post and video as guide。
但是很少有事情令人困惑,因为视频中没有清楚地显示这些内容
- 他使用的是一个 jvm 还是多个 jvm
- xml 配置文件被修改或未修改
- 他是在远程计算机还是当前计算机上启动了第一个节点
- 如果他使用多播发现 spi,那么什么是 xml 配置
首先,我使用以下命令在远程计算机上启动了 GridGain 节点:ggstart.bat examples/config/example-cache.xml 显示以下输出。
.....
[13:43:51] GridGain node started OK (id=8c8758d1)
[13:43:51] Topology snapshot [ver=1, nodes=1, CPUs=2, heap=1.0GB]
第二次我从 Eclipse 运行上面的代码,然后它显示以下输出
.....
[13:45:26] GridGain node started OK (id=8c8758d1)
[13:45:26] Topology snapshot [ver=1, nodes=1, CPUs=2, heap=0.24GB]
Current Value : 3
[13:45:34] GridGain node stopped OK [uptime=00:00:07:897]
请注意,从两个输出中它都显示“nodes=1”。但是在视频中,当更多节点启动时,节点数量会增加,并且剩余节点会收到有关新启动节点的通知。它根本没有发生在我身上。
在我这边,两台计算机都连接到同一网络上的 LAN,并且都可以相互 ping 通。两边的防火墙都关闭了。
我已经浏览了很多论坛,但到目前为止,我还没有找到任何关于如何在两台或多台物理计算机之间共享单个缓存的示例,我需要帮助,任何人都可以在这方面提供指导。
问候 -WA
【问题讨论】: