当前位置: 首页 > 知识库问答 >
问题:

谷歌云数据流:如何初始化Hikari连接池每个工人只有一次(单例)?

茅才
2023-03-14

Hibernate Utils正在创建带有Hikari配置的会话工厂。目前我们正在做@Setup方法的ParDo,但它打开了太多的连接。那么有没有什么好的例子来初始化每个工作人员的连接池呢?

共有1个答案

慕麒
2023-03-14

如果您在DoFn中使用@Setup方法来创建数据库连接,请记住Apache Beam将为每个工作实例线程创建连接池。这可能会导致大量的数据库连接,这取决于旋转的辅助角色的数量。

您可以在ParDo中使用Singleton类来创建连接池并控制每个工作者的连接数。您可以在这里查看示例实现

http://mail-archives.apache.org/mod_mbox/beam-issues/201905.mbox/

 类似资料:
  • 问题内容: 我正在尝试为我的Web应用程序配置HikariCP。我没有使用任何框架,它是一个简单的简单Java Web应用程序。当我尝试通过普通的JDBC建立连接时,它成功了,并且能够执行所有数据库操作。 但是,当我尝试与连接池建立连接时,初始化后却收到了一个我不知道的异常。 下面是我正在使用的配置,我正在上下文侦听器中对其进行初始化。我在Java 1.7上运行,带有使用HikariCP Java

  • 我目前正在研究一个POC,主要关注ETL处理的数据流。我使用Dataflow 2.1JavaBeam API创建了管道,初始化大约需要3-4分钟,每次运行终止也需要1-2分钟。然而,实际的转换(ParDo)需要不到一分钟。此外,我试图通过不同的方法来运行这些工作, 在本地计算机上运行作业 在GCP上远程运行作业 通过数据流模板运行作业 但看起来,上述所有方法在初始化和终止时都或多或少地消耗相同的时

  • 我使用postgresql+hibernate+c3p0进行池管理。 我可以看到,对于每个数据库查询,c3p0都在初始化,按照我的理解,这应该发生一次,而不是每个查询,否则有连接池有什么意义。如果我错了请改正。 相关信息:

  • 我的项目的设置是- 用于持久化的Spring JDBC 下面是我的应用程序的日志,它捕获了与数据库的交互。 日志中有两件事是清楚的- 连接池仅在收到执行查询的第一个请求时才开始创建连接 一个包含4个连接的池需要将近30秒的时间来初始化 我的问题是- 如何配置DBCP在启动时自动初始化? 创建连接真的需要那么长时间吗? 注意:请不要建议切换到C3P0或Tomcat连接池。我知道这些解决方案。我更感兴

  • 我正在尝试使用谷歌云数据流将谷歌PubSub消息写入谷歌云存储。PubSub消息采用json格式,我要执行的唯一操作是从json到parquet文件的转换。