数据导入处理程序可以使用HikariCP吗?

时间:2019-06-24 11:55:26

标签: solr hikaricp data-import

我在工作中使用solr4.5.1。

问题在于,当我执行数据导入(完全导入)时,发生了很多getConnection。所以我想是否可以将HikariCP用于数据导入,但是我还没有发现类似的问题。

有可能吗?如果是这样,请指教。

Solr 4.5.1 与Tomcat

data-config.xml

<dataSource driver="oracle.jdbc.driver.OracleDriver" 
            name="jdbc" 
            url="jdbc:oracle:thin:@address/mydb" 
            user="user" password="pass"/>

1 个答案:

答案 0 :(得分:0)

大量借用 David H Nebinger 的帖子:Tomcat and HikariCP

安装HikariCP

要使用JNDI,您需要在JNDI声明中声明JNDI数据源及其所有设置,密码和缓存选项。这与Solr无关。这是Tomcat机制。 this tutorial that also makes use of HikariCP中介绍了如何执行此操作。

首先是从http://brettwooldridge.github.io/HikariCP/下载.zip或.tar.gz文件。这实际上是您需要自己构建的源代码版本。

第二个选项是从Maven Central https://mvnrepository.com/artifact/com.zaxxer/HikariCP

之类的源下载构建的jar。

一旦有了jar,请复制到Tomcat lib/ext目录。请注意,Hikari CP确实依赖于SLF4J,因此您也需要将该jar放入lib/ext

不要忘记将数据源的JDBC驱动程序放在lib/ext文件夹中。

配置JNDI数据源

JNDI数据源<Resource />定义的位置取决于连接的范围。您可以通过在Tomcat的conf/server.xmlconf/context.xml中指定它们来全局定义它们,也可以通过在conf/Catalina/localhost/WebAppContext.xml中定义它们(在其中WebAppContext是Web应用程序)来将它们划分为单个应用程序应用的上下文,基本上是Tomcat的webapps目录中的目录名称。

创建文件conf/Catalina/localhost/ROOT.xml(如果尚不存在)。使用https://github.com/brettwooldridge/HikariCP#popular-datasource-class-names中的表查找您的数据源类名称,定义元素时将需要它。

<Resource name="jdbc/SolrPool" auth="Container"
    factory="com.zaxxer.hikari.HikariJNDIFactory"
    type="javax.sql.DataSource"
    minimumIdle="5" 
    maximumPoolSize="10"
    connectionTimeout="300000"
    dataSourceClassName="oracle.jdbc.pool.OracleDataSource"
    dataSource.url="jdbc:oracle:thin:@address/mydb"
    dataSource.implicitCachingEnabled="true" 
    dataSource.user="user" 
    dataSource.password="pass" />

在Solr中使用JNDI数据源

在学习了本教程之后,您将需要使用声明的JNDI数据源,就像described in the Solr Wiki

<dataSource
    jndiName="java:jdbc/SolrPool"
    type="JdbcDataSource"
    user="" password=""/> <!-- leave out user/password here -->