首先,对于选择不走寻常道路的人我表示哀悼。
可以远程访问嵌入式Infinispan缓存。您需要在服务器进程中设置一个
org.infinispan.server.hotrod.HotRodServer
,实际上是反向工程预打包的
Infinispan服务器分发版。
此方法未经记录,所以请自行承担风险。
您需要这些依赖项:
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-server-hotrod</artifactId>
<version>7.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-client-hotrod</artifactId>
<version>7.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-remote-query-server</artifactId>
<version>7.1.0.Final</version>
</dependency>
配置一个缓存示例(infinispan.xml
):
<infinispan>
<cache-container default-cache="default">
<local-cache name="dumpster">
<compatibility />
</local-cache>
</cache-container>
</infinispan>
服务器进程:
EmbeddedCacheManager cacheManager;
try (InputStream in = ClassLoader.getSystemResourceAsStream("infinispan.xml")) {
cacheManager = new DefaultCacheManager(in);
}
HotRodServerConfiguration serverConfig = new HotRodServerConfigurationBuilder()
.host("127.0.0.1").port(9999).build();
HotRodServer server = new HotRodServer();
server.start(serverConfig, cacheManager);
Cache<String, String> cache = cacheManager.getCache("dumpster", true);
cache.put("K", "V");
System.out.println(cache.get("K"));
客户端进程:
Configuration config = new ConfigurationBuilder().addServer()
.host("127.0.0.1").port(9999).build();
RemoteCacheManager cacheManager = new RemoteCacheManager(config);
RemoteCache<String, String> cache = cacheManager.getCache("dumpster");
System.out.println(cache.get("K"));