PT2S后Cassandra写入查询超时

PT2S后Cassandra写入查询超时,cassandra,datastax-java-driver,Cassandra,Datastax Java Driver,我有一个cassandra单片应用程序,我想以高速率编写,从队列中读取一些有效负载。Cassandra集群有3个节点。当我开始并行处理大量消息时(通过生成线程),我得到以下异常 java.util.concurrent.ExecutionException: com.datastax.oss.driver.api.core.DriverTimeoutException: Query timed out after PT2S 我正在创建CQLsession作为bean return CqlSes

我有一个cassandra单片应用程序,我想以高速率编写,从队列中读取一些有效负载。Cassandra集群有3个节点。当我开始并行处理大量消息时(通过生成线程),我得到以下异常

java.util.concurrent.ExecutionException: com.datastax.oss.driver.api.core.DriverTimeoutException: Query timed out after PT2S
我正在创建CQLsession作为bean

return CqlSession.builder().addContactPoints(contactPoints)
            /*.addContactPoint(new InetSocketAddress("localhost", 9042))*/
            .withConfigLoader(new DefaultDriverConfigLoader()).withLocalDatacenter("datacenter1")
            .addTypeCodecs(new CustomDateCodec())
            .withKeyspace("dev").build();
我正在将这个CqlSession注入我的mapper和其他类以运行查询

在我的datastax驱动程序中,我给出了3个节点的ip作为接触点 我是否需要在CQLsession创建/或cassandra节点中进行任何调优,以便它们能够以高并发性进行Is写入? 还有,我可以并行执行多少次写入


所有更新语句仅在主键上没有任何if条件

您看到的超时是由于您的应用程序使群集过载,从而有效地进行DDoS攻击

PT2S
是2秒写入超时。当commitlog磁盘只能占用如此多的写IO时,就会出现这种情况。如果您在日志或
nodetool tpstats
中看到删除的突变,则确认commitlog无法跟上写入


如果您的群集可以每秒进行10K写入,但您的应用程序正在进行20K写入,那么您需要将群集的大小增加一倍(添加更多节点),以支持吞吐量要求。干杯

你能展示一下你是如何写数据的吗?你使用批次吗?数据的来源是什么?Kafka或类似的东西?源是来自Kafka的有效负载,它被处理并写入多个表。有些是批处理,我知道分区键是相同的,有些是异步正常写入,我正在使用cassandra 4 beta。。这可能是个问题吗?不。。。它不应该链接到Cassandra 4-它受支持的版本我建议尝试DataStax的Kafka连接器()而不是手动编写的代码是的,我正在使用磁盘检查是否可以节省成本。一旦我转到SSD,问题就解决了。。