描述
客户端连接cassandra,执行语句的时候,提示
Cassandra timeout during CAS write query at consistency SERIAL (1 replica were required but only 0 acknowledged the write)
根据错误信息,大概能定位到的问题就是超时了,我本地去查询数据库的时候,查询也超过了4-5s,这里应该是写入的时候超时了。
解决方案
/etc/cassandra/
下找到cassandra.yaml文件中修改参数
默认参数
write_request_timeout_in_ms: 2000
修改参数
write_request_timeout_in_ms: 30000
可以看到默认是2s,估计执行的写操作超时时间大于2秒了,这里修改为30秒
其他
# 协调器等待读取操作完成的时间
read_request_timeout_in_ms: 5000
# 协调器应等待 seq 或索引扫描完成多长时间
range_request_timeout_in_ms: 10000
# 协调器应等待写入完成多长时间
write_request_timeout_in_ms: 20000
# 协调器应等待计数器写入完成多长时间
counter_write_request_timeout_in_ms: 5000
# 协调器应该继续重试 CAS 操作多长时间
cas_contention_timeout_in_ms:10000
# 协调器需要等待多长时间才能完成截断
truncate_request_timeout_in_ms: 60000
# 其他杂项操作的默认超时
request_timeout_in_ms: 10000
还有一些其他超时时间,可以根据实际情况修改调整
参考:
https://community.broadcom.com/communities/community-home/digestviewer/viewthread?MID=807685
https://stackoverflow.com/questions/32327629/cassandra-timeout-during-read-query-at-consistency-one-1-responses-were-require