com.datastax.oss.driver.api.core.DriverTimeoutException: 查询 'SELECT * FROM system.peers' 在 PT0.5S 后超时

nik*_*kli 5 java cassandra connection-timeout datastax-java-driver

我正在尝试将 Kafka Streams 聚合结果插入到 Cassandra 中。但是我在 500 毫秒后连接期间出现超时错误。为什么会发生这种情况以及如何增加此超时或是否可以关闭此查询?

Caused by: com.datastax.oss.driver.api.core.DriverTimeoutException: query 'SELECT * FROM system.peers' timed out after PT0.5S
    at com.datastax.oss.driver.api.core.DriverTimeoutException.copy(DriverTimeoutException.java:34)
    at com.datastax.oss.driver.internal.core.util.concurrent.CompletableFutures.getUninterruptibly(CompletableFutures.java:149)
    at com.datastax.oss.driver.api.core.session.SessionBuilder.build(SessionBuilder.java:612)
    at aggregator.sink.CassandraSink.connect(CassandraSink.java:94)
    at aggregator.sink.CassandraSink.init(CassandraSink.java:62)
    at aggregator.sink.CassandraSink_ClientProxy.init(CassandraSink_ClientProxy.zig:253)
    at org.apache.kafka.streams.processor.internals.ProcessorNode.lambda$init$0(ProcessorNode.java:97)
    at org.apache.kafka.streams.processor.internals.metrics.StreamsMetricsImpl.maybeMeasureLatency(StreamsMetricsImpl.java:806)
    at org.apache.kafka.streams.processor.internals.ProcessorNode.init(ProcessorNode.java:94)
Run Code Online (Sandbox Code Playgroud)

datastax-java-driver 配置:

Caused by: com.datastax.oss.driver.api.core.DriverTimeoutException: query 'SELECT * FROM system.peers' timed out after PT0.5S
    at com.datastax.oss.driver.api.core.DriverTimeoutException.copy(DriverTimeoutException.java:34)
    at com.datastax.oss.driver.internal.core.util.concurrent.CompletableFutures.getUninterruptibly(CompletableFutures.java:149)
    at com.datastax.oss.driver.api.core.session.SessionBuilder.build(SessionBuilder.java:612)
    at aggregator.sink.CassandraSink.connect(CassandraSink.java:94)
    at aggregator.sink.CassandraSink.init(CassandraSink.java:62)
    at aggregator.sink.CassandraSink_ClientProxy.init(CassandraSink_ClientProxy.zig:253)
    at org.apache.kafka.streams.processor.internals.ProcessorNode.lambda$init$0(ProcessorNode.java:97)
    at org.apache.kafka.streams.processor.internals.metrics.StreamsMetricsImpl.maybeMeasureLatency(StreamsMetricsImpl.java:806)
    at org.apache.kafka.streams.processor.internals.ProcessorNode.init(ProcessorNode.java:94)
Run Code Online (Sandbox Code Playgroud)
datastax-java-driver.basic.contact-points.0=10.0.111.61:9042
datastax-java-driver.basic.load-balancing-policy.local-datacenter=datacenter1
datastax-java-driver.basic.session-keyspace=my_ks
datastax-java-driver.basic.request.timeout=20 seconds
datastax-java-driver.advanced.auth-provider.class=PlainTextAuthProvider
datastax-java-driver.advanced.auth-provider.username=${CASSANDRA_USR}
datastax-java-driver.advanced.auth-provider.password=${CASSANDRA_PWD}
datastax-java-driver.advanced.protocol.version=V4
datastax-java-driver.advanced.timestamp-generator.force-java-clock=true
datastax-java-driver.advanced.connection.init-query-timeout=10000 milliseconds
datastax-java-driver.advanced.connection.pool.remote.size=10
datastax-java-driver.advanced.connection.pool.local.size=5
datastax-java-driver.advanced.heartbeat.timeout=2000 milliseconds
Run Code Online (Sandbox Code Playgroud)

Rya*_*uey 4

如果您使用 Datastax Kafka Connector,并且想要更改 java 驱动程序配置,请将上面的内容添加到您的connect-standalone.properties文件中(或任何您命名的文件)。命名空间配置为datastax-java-driver.

特别是,将其添加到我的connect-standalone.properties文件中使超时对我有用:

datastax-java-driver.advanced.connection.init-query-timeout=2000 milliseconds
Run Code Online (Sandbox Code Playgroud)

更多信息请参见官方文档

但是,请记住,有时真正的问题不是超时太低,而是超时这一事实是不同潜在问题的症状。请参阅Datastax 社区中与此相关的讨论。