开发者社区 > 云原生 > 正文

io.netty.handler.codec.TooLongFrame异常

我有两个制作人向一个主题发送消息。一个生产者发送消息,保持5秒的间隔,另一个生产者暂时发送消息,因为我将收集170万条数据的SQL SERVER DB,每次发送10条。但每个消息大小超过2M或更多,我认为如果消息超过4M,则不应发生TooLongFrameException错误。

2020-05-19 18:30:16 INFO NettyServerWorkerThread_6 - NETTY SERVER PIPELINE: channelRegistered 94.102.49.74:59895 2020-05-19 18:30:16 INFO NettyServerWorkerThread_6 - NETTY SERVER PIPELINE: channelActive, the channel[94.102.49.74:59895] 2020-05-19 18:30:16 ERROR NettyServerWorkerThread_6 - decode exception, 94.102.49.74:59895 io.netty.handler.codec.TooLongFrameException: Adjusted frame length exceeds 8388608: 50331699 - discarded at io.netty.handler.codec.LengthFieldBasedFrameDecoder.fail(LengthFieldBasedFrameDecoder.java:501)] ...igore ... 2020-05-19 18:30:16 INFO NettyServerSelector_3_1 - closeChannel: close the connection to remote address[94.102.49.74:59895] result: true

所以,我不知道是什么原因造成的,请给我一些建议。谢谢。

原提问者GitHub用户hzz1995

展开
收起
芬奇福贵 2023-05-26 11:46:10 442 0
1 条回答
写回答
取消 提交回答
  • 在我看来,因为消息太大,所以超过8M。在业务级别拆分消息,确保每条消息的大小不超过8M。

    原回答者GitHub用户lizhiboo

    2023-05-26 17:37:15
    赞同 展开评论 打赏
问答标签:
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
多IO线程优化版 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载