我有 2 个以REPL_ASYNC模式运行的 HotRod 服务器。我正在尝试通过提供 hotrod 服务器地址和端口来使用 hotrod 客户端连接它。
我正在尝试实现类似于 Near Cache 的功能。不使用 Nearcache 来避免 RPC 调用的原因。我们希望控制 NearCache 完成的远程调用。我与通知侦听器一起实现了所有逻辑。因此,为此我尝试将 ClientListener 附加到 RemoteCache 上,然后想对事件通知采取行动。当所有服务器都在运行时,它按预期工作。但是当其中一个 hotrod 服务器停止或添加新服务器时,它没有得到更新的服务器视图。而当我在没有 ClientListener 的情况下运行 hotrod 客户端时,我正在获取服务器的更新视图。
任何人对此有想法请分享我尝试了很多东西但没有成功。
请建议是否有人遇到过这个问题?
更新:每当我们执行获取操作时获取更新的视图,但如果没有执行获取操作,则不会获取更新的拓扑视图
使用的配置:
final ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
configurationBuilder.clustering().stateTransfer().awaitInitialTransfer(true);
configurationBuilder.clustering().stateTransfer().fetchInMemoryState(true);
configurationBuilder.clustering().sync().replTimeout(15000);
configurationBuilder.clustering().cacheMode(CacheMode.REPL_ASYNC);
configurationBuilder.dataContainer().compatibility().enable();configurationBuilder.transaction().transactionMode(TransactionMode.TRANSACTIONAL);configurationBuilder.storeAsBinary().enable().storeKeysAsBinary(false).storeValuesAsBinary(false);
configurationBuilder.jmxStatistics().enabled(true);
configurationBuilder.eviction().strategy(LIRS);
configurationBuilder.eviction().maxEntries(25000);
configurationBuilder.expiration().lifespan(-1);