Scala应用写入AWS Keyspaces时偶发NoNodeAvailableException问题排查
AWS Keyspaces特定表写入偶尔抛出NoNodeAvailableException
我用Scala开发应用,通过Datastax Java Driver向多个AWS Keyspaces表写入数据,但其中一张特定表的INSERT或UPDATE操作偶尔失败。
目标表DDL
CREATE TABLE my_keyspace.my_table ( field1 TEXT, field2 TEXT, timestamp_field1 TIMESTAMP, field3 TEXT, field4 TEXT, field5 TEXT, field6 TEXT, field7 DOUBLE, field8 DOUBLE, timestamp_field2 TIMESTAMP, list_field1 frozen<list<frozen<map<TEXT, TEXT>>>>, timestamp_field3 TIMESTAMP, field9 TEXT, PRIMARY KEY ((field1), timestamp_field1, field2, field3) ) WITH CLUSTERING ORDER BY (timestamp_field1 DESC, field2 DESC, field3 DESC)
报错信息
com.datastax.oss.driver.api.core.NoNodeAvailableException: No node was available to execute the query at com.datastax.oss.driver.api.core.NoNodeAvailableException.copy(NoNodeAvailableException.java:40)
写入量关联情况
写入频率不算高,但发现写入量小幅上升时会出现失败。比如第7分钟报错时,前两分钟的写入量有明显增加,不确定200次左右的写入是否会引发问题:
minute, count 0 79 1 170 2 154 3 98 4 105 5 161 6 252 7 264 <- 该时间段出现错误 8 160 9 143
已尝试方案及疑问
- 已增强写入重试机制,添加指数延迟,但错误仍未解决
- 了解到可配置连接池参数,但不确定这会对应用性能造成什么影响,也不知道如何测试是否能改善问题
想问有没有人遇到过类似的问题?
内容的提问来源于stack exchange,提问作者Ivan Feliciano Avelino
相关产品推荐
相关产品推荐

