gpt4 book ai didi

mysql - 带有 JdbcIO 编写器的 ApacheBeam/DataFlow runner 创建了太多连接

转载 作者:行者123 更新时间:2023-11-29 02:09:42 24 4
gpt4 key购买 nike

我正在使用 GCP 云 SQL 和 MySQL 实例,并使用 JdbcIo 将数据从 DataFlow 管道写入 MySQL。

DataFlow 似乎生成了太多连接,并达到了 DB 限制(4000),即使我在连接池中指定了最大大小:1000

 ComboPooledDataSource dataSource = new ComboPooledDataSource();
try {
dataSource.setDriverClass("org.mysql.Driver");
} catch (PropertyVetoException e) {
throw new RuntimeException("Failed set mysql driver",e);
}
dataSource.setJdbcUrl("jdbc:mysql://google/live-data?cloudSqlInstance<INSTANCE_NAME>&socketFactory=com.google.cloud.sql.mysql.SocketFactory&useSSL=false&user=<USER>&password=<PASSWORD>");

dataSource.setMaxPoolSize(1000);
dataSource.setInitialPoolSize(1000);

此外,在仪表板中我可以看到比查询更多的连接: enter image description here

enter image description here

enter image description here

我的 pom.xml

 <dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.4</version>
</dependency>
<dependency>
<groupId>com.google.cloud.sql</groupId>
<artifactId>mysql-socket-factory</artifactId>
<version>1.0.13</version>
</dependency>
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-sdks-java-io-jdbc</artifactId>
<version>${beam.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>

最佳答案

DataFlow generates too many connections, and reach the DB limit (4000), even that I specify in the connection pool, max size: 1000

一个快速的猜测是,由于 Dataflow 可以有多个运行器,每个运行器可能都有自己的连接池。这意味着每个池将有 1000 个独立的连接。这很可能比您实际使用的连接要多得多 - 请参阅 pool sizing 上的 HikariCP 维基。 .

Also, in the dashboard I can see much more connections then queries:

由于您设置了 setInitialPoolSize(1000),池不会根据需要懒惰地建立连接,而是在池初始化时创建 1000。从提供的示例中,您没有对连接生命周期提供任何限制,因此这些连接可能会尽可能长地持续存在。

关于mysql - 带有 JdbcIO 编写器的 ApacheBeam/DataFlow runner 创建了太多连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55992731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com