最好使用CacheStore、JDBC驱动程序和xml配置部署Ignite应用程序

最好使用CacheStore、JDBC驱动程序和xml配置部署Ignite应用程序,xml,postgresql,jdbc,deployment,ignite,Xml,Postgresql,Jdbc,Deployment,Ignite,部署ignite应用程序的最佳方法是什么?ZeroDeployment听起来很简单,但我还没有找到一个简单的方法。我构建了一个应用程序来尝试Ignite的write-behind方法。我扩展了CacheStoreAdapter,它使用PostgreSQL jdbc插入数据。它在IDE中运行良好,但我还没有找到将其部署到服务器的好方法。我的笔记本电脑通过VPN连接到装有Ignite&PostgreSQL的服务器。我的笔记本电脑上的JDBC通过vpn,所以我想测试应用程序在服务器上运行时的性能 我尝

部署ignite应用程序的最佳方法是什么?ZeroDeployment听起来很简单,但我还没有找到一个简单的方法。我构建了一个应用程序来尝试Ignite的write-behind方法。我扩展了CacheStoreAdapter,它使用PostgreSQL jdbc插入数据。它在IDE中运行良好,但我还没有找到将其部署到服务器的好方法。我的笔记本电脑通过VPN连接到装有Ignite&PostgreSQL的服务器。我的笔记本电脑上的JDBC通过vpn,所以我想测试应用程序在服务器上运行时的性能

我尝试了两种方法: 1.应用程序以客户机模式启动ignite,它工作正常,但我发现部署需要几个步骤。 -将包含jdbc驱动程序的fat jar复制到ignite/libs文件夹中。 -将config.xml复制到config文件夹中 -使用ignite.sh config/config.xml启动服务器节点 -使用java-jarapplication.jar启动客户机节点 -客户机程序成功完成,但服务器后台写代码(CacheStoreAdapter.write)出错,并报告未找到jdbc驱动程序。在我将一个单独的postgresql-9.4.1212.jre6.jar复制到libs并重新启动Ignite服务器节点后,写操作成功了

  • 我将应用程序更改为在服务器模式下启动ignite。xml文件包含在fat jar文件中。
    • 同上:将包含jdbc驱动程序的fat application.jar复制到ignite/libs文件夹中
    • 使用java-jarapplication.jar启动服务器节点 写入缓存成功,但写在后面的代码错误被清除,并且还抱怨没有找到jdbc驱动程序。请注意,postgresql-9.4.1212.jre6.jar存在于ignite libs文件夹中。我只启动并运行了这个服务器节点
  • [00:24:20244][severy][flusher-0-#23%null%][GridCacheWriteBehindStore]无法更新基础存储:com.xxxx.xxx.xxx.datastore。CustomStore@555cf22 ........... 原因:java.sql.SQLException:找不到适合jdbc的驱动程序:postgresql://xxx.xxxx.xxxx.com:5432/customdb

  • 我使用ignite.sh config/config.xml启动服务器节点,然后使用java-jar application.jar在服务器模式下启动ignite。现在我有两个服务器节点。这一次,一切顺利完成。异步写背后似乎有一种查找jdbc驱动程序的特定方法 有更好的方法吗?我同意,在更接近生产环境的情况下,具有多个服务器节点的集群可能是现实。如果我更改xml中的配置,这些更改是否会填充到其他节点?或者我也应该更新其他节点中的xml吗?还是使用java配置对象更好,因为它会自动加载到对等方


    谢谢你的时间和建议

    我看到您尝试部署两件事情:配置(xml文件)和libs。对于您的情况,我建议采用以下方法:

    • 配置文件不应该部署在每个服务器节点上,但服务器和客户端应该能够找到彼此。这意味着用于客户端和服务器节点的ignite配置应包含正确配置的IP查找器(VmIpFinder或MulticastIpFinder)。服务器节点的配置可能不包含缓存配置等
    • 应该在所有节点上部署Libs(JDBC存储和JDBC驱动程序)。零部署不适用于这种情况。缓存配置中的所有类都应在所有节点上可用

    感谢您的快速回复。我试试看。这是否意味着我应该准备两个包裹?一个用于服务器,其中包括JDBC和Pojo存储?另一个是给客户的?2) 如果服务器的配置文件不包括缓存配置,那么一旦客户端应用程序完成,缓存是否会被销毁?我们希望在服务器启动时对缓存进行预热,并让缓存保留在内存中,即使在客户端完成并断开连接时也是如此,因此我们始终可以使用一个温暖的缓存。这有意义吗?谢谢你的帮助!1) 客户端和服务器的两个包都应该包含JDBC和Pojo存储类。2) 如果客户端离开拓扑,缓存将不会停止。是的,这是有道理的。