Cassandra出现OversizedMessageException:咨询数据完整性及解决措施
Cassandra消息大小超限问题解答
错误信息
ERROR [ReadStage-1] 2024-03-29 05:36:26,158 JVMStabilityInspector.java:68 - Exception in thread Thread[ReadStage-1,5,SharedPool] org.apache.cassandra.net.Message$OversizedMessageException: Message of size 142675369 bytes exceeds allowed maximum of 134217728 bytes at org.apache.cassandra.net.OutboundConnection.enqueue(OutboundConnection.java:331) at org.apache.cassandra.net.OutboundConnections.enqueue(OutboundConnections.java:92) at org.apache.cassandra.net.MessagingService.doSend(MessagingService.java:417) at org.apache.cassandra.net.OutboundSink.accept(OutboundSink.java:70) at org.apache.cassandra.net.MessagingService.send(MessagingService.java:406) at org.apache.cassandra.net.MessagingService.send(MessagingService.java:376) at org.apache.cassandra.db.ReadCommandVerbHandler.doVerb(ReadCommandVerbHandler.java:91) at org.apache.cassandra.net.InboundSink.lambda$new$0(InboundSink.java:78) at org.apache.cassandra.net.InboundSink.accept(InboundSink.java:97) at org.apache.cassandra.net.InboundSink.accept(InboundSink.java:45) at org.apache.cassandra.net.InboundMessageHandler$ProcessMessage.run(InboundMessageHandler.java:430) at org.apache.cassandra.concurrent.ExecutionFailure$1.run(ExecutionFailure.java:124) at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:120) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Unknown Source)
1. 是否影响数据完整性?
不会。这个错误是Cassandra节点在尝试向其他节点(或客户端)发送超过大小限制的响应时触发的,磁盘上的数据本身不会被损坏。失败的只是当前的读取请求,客户端会收到明确的错误提示,不会获取到不完整的数据。
2. 是否可以通过调整cassandra.yaml参数避免?
可以,但调整参数只是临时解决方案,建议先排查根因:
- 修改
cassandra.yaml中的max_message_size_in_mb参数,默认值为128,可根据需求调高(比如设置为256)。注意:所有集群节点必须同步修改该参数,否则节点间通信仍会出现不兼容问题。 - 调高参数后要考虑网络带宽和JVM内存压力:更大的消息会占用更多网络资源,同时也会增加节点的内存开销,可能引发其他性能问题。
3. 排查大消息根源建议
- 检查查询语句:是否存在未加分页的全表扫描、范围查询覆盖了过多分区,或者一次性拉取大量数据的操作。
- 检查表结构与数据:是否有
blob等大字段存储了超大内容(比如几MB甚至几十MB的文件),或者单个分区大小超过了Cassandra建议的100MB上限。 - 监控节点间通信:通过Cassandra的监控工具查看消息大小的分布,定位频繁产生大消息的请求或表。
内容的提问来源于stack exchange,提问作者Koniph Cole
相关产品推荐
相关产品推荐

