我们正在使用 Apache Ignite 进行缓存,在测试期间我遇到了这个错误
java.lang.IllegalStateException: 缓存已关闭或销毁
我们有一个 Spring Restful 客户端,里面嵌入了 IGNITE。调用来更新和从缓存中删除。
发生的步骤如下
- 一个正在运行的 Ignite 服务器实例。
- 一个在不同服务器上运行的 Restful 客户端实例 点燃嵌入式。
- 杀死 Ignite 服务器实例,客户端仍在运行
- Ignite 服务器重新启动。
- 客户端将值放入缓存的任何尝试都会导致上述情况 异常(exception)。
- 如果客户端重新启动一切正常
有人可以就发生这种情况的原因提出一些见解吗?我是否必须处理所有节点离开的事件并手动驱逐缓存或其他东西。
感谢任何帮助
最佳答案
万一所有服务器都宕机了,客户端会用一个新的 ID 重新加入(就像你手动重启它一样)。在这种情况下,所有现有的缓存实例都将关闭,您必须获取新的缓存实例(使用 Ignite.cache(...)
方法)。
有一张票可以改善这种行为:https://issues.apache.org/jira/browse/IGNITE-2766
关于java - 点燃缓存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35805298/