我正在使用https://apacheignite-mix.readme.io/v1.7/docs/automatic-persistence将数据从数据库加载到Ignite缓存中 .
我使用Ignite客户端模式运行我的代码,并希望将数据加载到Ignite Cluster中 .
看来我必须将我的用户代码jar和依赖的jar放入$ IGNITE_HOME / libs才能使我的代码工作?
我会问:
-
我是否做了正确的事情将这些 jar 放到$ IGNITE_HOME / libs以使我的代码工作?
-
如果我必须将我的jar放入$ IGNITE_HOME / libs,看起来如果我在将一些表加载到缓存后需要加载更多表,我是否必须关闭集群并重新启动以便服务器加载这些新课程?如果是这样,那么缓存中的数据将会丢失,因为它们驻留在内存中,并且必须重新加载?
1 回答
有两种方法可以通过
IgniteDataStreamer
和CacheStore
实现加载数据 . 有关详细信息,请参阅此页面:https://apacheignite.readme.io/docs/data-loading如果是
IgniteDataStreamer
,您将从客户端上的DB加载数据并将其流式传输到集群中 . 在这种情况下,您不需要向服务器类路径添加任何类 .如果是
CacheStore
,您将从服务器端的DB加载数据 . 在这种情况下,您需要显式部署(添加到libs
文件夹)CacheStore
的实现及其依赖的任何内容 . 如果你正在使用Automatic Persistence,那么实现已经存在,也没有任何部署 .您永远不需要在服务器类路径上具有模型类,并且您可以在不重新启动集群的情况下动态更改架构 . 有关更多信息,请参阅此页面:https://apacheignite.readme.io/docs/binary-marshaller