You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 01:14:55