数据导入处理程序可以使用 HikariCP 吗?
can data-import-handler use HikariCP?
我在工作中使用的是 solr4.5.1。
麻烦的是,当我执行数据导入(完全导入)时,发生了很多getConnection
。所以我想HikariCP是否可以用于数据导入,但我没有发现类似的问题。
可能吗?如果是请指教。
Solr 4.5.1 与 Tomcat
数据-config.xml
<dataSource driver="oracle.jdbc.driver.OracleDriver"
name="jdbc"
url="jdbc:oracle:thin:@address/mydb"
user="user" password="pass"/>
大量借鉴 David H Nebinger 的 post: 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 等来源下载构建的 jar,https://mvnrepository.com/artifact/com.zaxxer/HikariCP
获得 jar 后,复制到 Tomcat lib/ext
目录。请注意,Hikari CP 确实依赖于 SLF4J,因此您也需要将该 jar 放入 lib/ext
。
不要忘记将数据源的 JDBC 驱动程序放在 lib/ext
文件夹中。
配置 JNDI 数据源
JNDI 数据源的位置<Resource />
定义取决于连接的范围。您可以通过在 Tomcat 的 conf/server.xml
和 conf/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 中的 table 查找您的数据源 class 名称,我们在定义元素时将需要它。
<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 -->
我在工作中使用的是 solr4.5.1。
麻烦的是,当我执行数据导入(完全导入)时,发生了很多getConnection
。所以我想HikariCP是否可以用于数据导入,但我没有发现类似的问题。
可能吗?如果是请指教。
Solr 4.5.1 与 Tomcat
数据-config.xml
<dataSource driver="oracle.jdbc.driver.OracleDriver"
name="jdbc"
url="jdbc:oracle:thin:@address/mydb"
user="user" password="pass"/>
大量借鉴 David H Nebinger 的 post: 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 等来源下载构建的 jar,https://mvnrepository.com/artifact/com.zaxxer/HikariCP
获得 jar 后,复制到 Tomcat lib/ext
目录。请注意,Hikari CP 确实依赖于 SLF4J,因此您也需要将该 jar 放入 lib/ext
。
不要忘记将数据源的 JDBC 驱动程序放在 lib/ext
文件夹中。
配置 JNDI 数据源
JNDI 数据源的位置<Resource />
定义取决于连接的范围。您可以通过在 Tomcat 的 conf/server.xml
和 conf/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 中的 table 查找您的数据源 class 名称,我们在定义元素时将需要它。
<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 -->