- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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);
我的 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/
我想通过 Google Dataflow 将数据加载到 Google CloudSQL 实例中。我认为 CloudSQL 没有内置的 Sink,我决定使用 org.apache.beam.sdk.io
我正在尝试调用一个将自定义对象类型作为参数的 Postgres 例程。 create type person_type as ( first varchar, second va
我正在尝试使用 JDBCIO 为 apache beam 执行一个 postgres 例程。 到目前为止我已经尝试过: .apply(JdbcIO.write()
我正在使用 GCP 云 SQL 和 MySQL 实例,并使用 JdbcIo 将数据从 DataFlow 管道写入 MySQL。 DataFlow 似乎生成了太多连接,并达到了 DB 限制(4000),
我正在使用 Dataflow SDK 2.X Java API (Apache Beam SDK) 将数据写入 mysql。我根据 Apache Beam SDK documentation 创建了管
我是一名优秀的程序员,十分优秀!