{“code”:20000,”data”:””,”message”:”Failed to send response: Response [id=144, version=2.0.0, status=20, event=false, error=null, result=RpcResult [result=com.cgw360.cls.base.DataPage@fc510eb, exception=null]], cause: java.io.IOException: Data length too large: 9191772, max payload: 8388608, channel: NettyChannel [channel=[id: 0x2b9e3863, /10.10.16.218:57000 => /10.10.13.37:40784]]\njava.io.IOException: Data length too large: 9191772, max payload: 8388608, channel: NettyChannel [channel=[id: 0x2b9e3863, /10.10.16.218:57000 => /10.10.13.37:40784]]\n\tat com.alibaba.dubbo.remoting.transport.AbstractCodec.checkPayload(AbstractCodec.java:49)\n\tat com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.encodeResponse(ExchangeCodec.java:285)\n\tat com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.encode(ExchangeCodec.java:77)\n\tat com.alibaba.dubbo.rpc.protocol.dubbo.DubboCountCodec.encode(DubboCountCodec.java:39)\n\tat com.alibaba.dubbo.remoting.transport.netty.NettyCodecAdapter$InternalEncoder.encode(NettyCodecAdapter.java:81)\n\tat org.jboss.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:66)\n\tat org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:591)\n\tat org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendDownstream(DefaultChannelPipeline.java:776)\n\tat org.jboss.netty.channel.SimpleChannelHandler.writeRequested(SimpleChannelHandler.java:304)\n\tat com.alibaba.dubbo.remoting.transport.netty.NettyHandler.writeRequested(NettyHandler.java:99)\n\tat org.jboss.netty.channel.SimpleChannelHandler.handleDownstream(SimpleChannelHandler.java:266)\n\tat org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:591)\n\tat org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:582)\n\tat org.jboss.netty.channel.Channels.write(Channels.java:611)\n\tat org.jboss.netty.channel.Channels.write(Channels.java:578)\n\tat org.jboss.netty.channel.AbstractChannel
这是在传输一个大数据时dubbo遇到的一个问题,超过传输数据大小
做得一个excel导出 有11个字段 然后大概19000条数据就导致问题出现
解决:
做一个内存分页,每次查询出来2000或者多少条,在内存中进行分页,然后通过循环然后传输给前端