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

时间:2017-01-31 05:44:22

标签: xml postgresql jdbc deployment ignite

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

我试过两种方法: 1.应用程序在客户端模式下启动点亮,但是我发现部署涉及几个步骤。      - 将包含jdbc驱动程序的胖jar复制到ignite / libs文件夹中。      - 将config.xml复制到config文件夹中      - 使用ignite.sh config / config.xml启动服务器节点      - 使用java -jar application.jar启动客户机节点      - 客户端程序成功完成但服务器后写代码(CacheStoreAdapter.write)错误输出并且没有发现jdbc驱动程序。将一个单独的postgresql-9.4.1212.jre6.jar复制到libs并重新启动Ignite服务器节点后,后面的写入成功。

  1. 我将应用程序更改为在服务器模式下启动点火。 xml文件包含在fat jar文件中。
    • 与上述相同:将包含jdbc驱动程序的fat.appar复制到ignite / libs文件夹中。
    • 使用java -jar application.jar启动服务器节点 写入缓存成功但写入后面的代码错误,并抱怨没有找到jdbc驱动程序。请注意,postgresql-9.4.1212.jre6.jar存在于ignite libs文件夹中。我只启动并运行此服务器节点。
  2. [00:24:20,244] [严重] [flusher-0-#23%null%] [GridCacheWriteBehindStore]无法更新底层商店:com.xxxx.xxx.xxx.datastore.CustomStore@555cf22 ........... 引起:java.sql.SQLException:没有为jdbc找到合适的驱动程序:postgresql://xxx.xxxx.xxxx.com:5432/customdb

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

      感谢您的时间和建议!

1 个答案:

答案 0 :(得分:1)

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

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