客户端模式下的Ignite和RDMS集成

客户端模式下的Ignite和RDMS集成,ignite,Ignite,我正在使用将数据从数据库加载到Ignite缓存中 我使用Ignite客户端模式运行代码,并希望将数据加载到Ignite集群中 看来我必须将我的用户代码jar和依赖jar放入$IGNITE_HOME/libs中才能使代码正常工作 我想问: 我是否做了正确的事情,将这些jar放到$IGNITE_HOME/libs以使代码正常工作 如果我必须将JAR放入$IGNITE_HOME/libs中,那么在将一些表加载到缓存中之后,如果需要加载更多的表,我是否应该关闭集群并重新启动服务器以加载这些新类?如果是这

我正在使用将数据从数据库加载到Ignite缓存中

我使用Ignite客户端模式运行代码,并希望将数据加载到Ignite集群中

看来我必须将我的用户代码jar和依赖jar放入$IGNITE_HOME/libs中才能使代码正常工作

我想问:

  • 我是否做了正确的事情,将这些jar放到$IGNITE_HOME/libs以使代码正常工作
  • 如果我必须将JAR放入$IGNITE_HOME/libs中,那么在将一些表加载到缓存中之后,如果需要加载更多的表,我是否应该关闭集群并重新启动服务器以加载这些新类?如果是这样,那么缓存中的数据将丢失,因为它们驻留在内存中,并且必须重新加载

  • 有两种加载数据的方法,通过
    IgniteDataStreamer
    CacheStore
    实现。有关详细信息,请参见本页:

    IgniteDataStreamer
    的情况下,您将从客户机上的DB加载数据并将其流式传输到集群中。在这种情况下,您不需要向服务器类路径添加任何类

    CacheStore
    的情况下,您将从服务器端的数据库加载数据。在这种情况下,您需要显式部署(添加到
    libs
    文件夹)实现
    CacheStore
    及其依赖的任何内容。如果您正在使用,那么实现已经存在,也没有什么可部署的


    您不需要在服务器类路径上有模型类,您可以在不重新启动集群的情况下动态更改模式。有关更多信息,请参见本页:

    谢谢@Valentin。我正在使用,我观察到的是,如果我使用对等类加载,那么我必须将我的用户代码jar放在集群的一个节点中(三个集群节点中只有一个)。若我并没有将用户代码jar放在任何节点中,那个么就会抛出ClassNotFoundException,所以我认为用户代码应该放在一个服务器节点中。但是此观察违反了zero Deployment继续上面的评论:zero Deployment(启用对等类加载后,您不必在网格中的每个节点上手动部署Java或Scala代码,并在每次更改时重新部署它。参考:)不确定我的观察是否正确!零部署实际上是为计算网格设计的,它允许动态加载作业和任务。任何属于配置的内容(如
    CacheStore
    implementation)都必须在启动之前位于服务器类路径上。