Apache Ignite Cache ClassNotFoundException

时间:2018-03-28 08:23:04

标签: apache classnotfoundexception ignite

我有一个apache点燃集群。

所有节点都分为两个逻辑组:平台级节点( PLN )和应用级节点( ALN )。集群中的每个节点都有:

  • xml配置文件(ALN包含PLN配置和特定于应用程序的缓存配置)
  • 用于检测ALN的过滤器类

ALN包含POJO类以使用Ignite缓存,PLN不包含此类,不适合nodeFilter

启动时

PLN (加入带有ALN的群集)尝试应用ALN缓存配置并捕获与应用程序POJO类相关的 ClassNotFoundException

如果它不适合nodeFilter,可以点燃服务器节点忽略缓存配置吗?

2 个答案:

答案 0 :(得分:0)

所有Ignite节点都需要拥有群集中的所有缓存配置。

nodeFilter仅限制保存缓存数据的节点集。集群中的所有节点都可以查询任何缓存,因此需要这些信息。

如果需要,可以拥有两个集群,即使在单个JVM(每个节点)内也是如此。这样他们就不会以任何方式进行互动。

答案 1 :(得分:0)

如果在应该在服务器端执行的用户代码中使用二进制对象概念[1],Ignite在大多数情况下都不需要在服务器端的类路径中使用键/值类。

但是,Ignite配置中提到的用户类必须位于所有节点上的类路径中。如果您需要SQL索引并使用二进制对象,则可以在网格启动时通过SQL查询动态创建索引。

请看一下BinaryObject概念[1]。希望它有所帮助。

[1] https://apacheignite.readme.io/docs/binary-marshaller#section-basic-concepts