在一致性本地\u仲裁的读取查询期间,cassandra超时(需要2个响应,但只响应1个副本)

gfttwv5a  于 2021-06-14  发布在  Cassandra
关注(0)|答案(0)|浏览(615)

我们的一个应用程序偶尔会出现以下错误:

Cassandra timeout during read query at consistency LOCAL_QUORUM (2 responses were required but only 1 replica responded)

在一个小时的时间里,我们可能会收到20或30个这样的超过10000个或更多的查询。而查询的重试通常是有效的。
它看起来确实是某种超时。这个错误出现在应用程序日志中,但是在cassandra system.log和debug.log中,我没有看到任何相应的错误或警告,或者任何真正的错误或警告。
我在网上做的所有搜索都会导致人们一致认为这一点的查询,但对我来说并不一致。集群本身运行正常,其他查询返回正常。被查询的表不是很大(每台服务器上只有几十mb)。查看tablehistorgrams,我没有看到任何在任何服务器上对所讨论的表进行过大的读写操作。cpu、内存等都很好。
该表的典型组织图是

Percentile  SSTables     Write Latency      Read Latency    Partition Size        Cell Count
                              (micros)          (micros)           (bytes)
50%             2.00             29.52            152.32              1916                72
75%             3.00             35.43            379.02             24601               770
95%             3.00             51.01            379.02            454826             14237
98%             3.00             61.21            379.02            654949             20501
99%             3.00             73.46            379.02            785939             24601
Min             0.00             14.24            105.78               180                 6
Max             3.00             88.15            379.02           1629722             51012

虽然我没有一个从这个错误出现后立即。
运行apache cassandra 3.11.3。16节点群集(每个dc中有8个节点)。复制是dc1:3、dc2:3(对于所有用户密钥空间中的所有表)。驱动程序配置为使用dcawarerroundrobin,所有读写都是本地仲裁。应用程序(和我们所有的应用程序一样)是write-heave。配置了stdc,如果有帮助的话。
我们看到写操作的超时要少得多,但它们不是零:

com.datastax.driver.core.exceptions.WriteTimeoutException: Cassandra timeout during SIMPLE write query at consistency LOCAL_QUORUM (2 replica were required but only 1 acknowledged the write)

如果有关系的话,这个特定应用程序的akka持久性表就是这样。
我正在寻找可能的建议,作为原因,请,因为我还没有找到任何东西(我没有太多的头发拔…)。
谢谢。

Caused by: com.datastax.driver.core.exceptions.ReadTimeoutException: Cassandra timeout during read query at consistency LOCAL_QUORUM (2 responses were required but only 1 replica responded)
at com.datastax.driver.core.Responses$Error$1.decode(Responses.java:91)
at com.datastax.driver.core.Responses$Error$1.decode(Responses.java:66)
at com.datastax.driver.core.Message$ProtocolDecoder.decode(Message.java:297)
at com.datastax.driver.core.Message$ProtocolDecoder.decode(Message.java:268)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88)
... 34 common frames omitted

我们有几个应用程序使用这个集群。这不是唯一一个有错误的应用程序,但我认为通过修复这个应用程序,它将修复其他应用程序。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题