我有一个阿帕奇点火集群。
所有节点都拆分为两个逻辑组:平台级节点(PLN)和应用级节点(ALN)。集群中的每个节点都有:
ALN包含POJO类来使用Ignite缓存,PLN不包含此类并且不适合nodeFilter。
但是PLN在启动时(使用ALN加入集群)尝试应用ALN缓存配置并捕获与应用程序POJO类相关的ClassNotFoundException。
如果不适合nodeFilter,是否可以点燃服务器节点忽略缓存配置?
所有Ignite节点都需要在集群中拥有所有缓存配置。
nodeFilter
仅约束保存数据以进行缓存的节点集。集群中的所有节点都可以查询任何缓存,因此它们需要此信息。
如果需要,你可以有两个集群,甚至在单个JVM(每个节点)内。这样它们就不会以任何方式交互。
如果在应该在服务器端执行的用户代码中使用二进制对象概念[1],在大多数情况下,Ignite不需要在服务器端的类路径中包含Key/Value类。
但是,Ignite配置中提到的用户类必须在所有节点的类路径中。如果您需要SQL索引并使用二进制对象,那么您可以在网格启动时通过SQL查询动态创建索引。
请看看BinaryObject概念[1]。希望它有所帮助。
[1] https://apacheignite.readme.io/docs/binary-marshaller#section-basic-concepts