原因:


当dubbo服务提供层向消费层传输大数据容量的对象时,会受到Dubbo的限制,报类似如下异常:

com.alibaba.dubbo.remoting.transport.AbstractCodec.checkPayload() ERROR 

Data length too large: 15156902, max payload: 8388608

java.io.IOException: Data length too large: 15156902, max payload: 8388608

 

解决方案如下,有三种

第一种方案

修改提供方的dubbo配置,

在dubbo.properties 中增加如下

dubbo.protocol.dubbo.payload=11557050(默认为8M,即8388608)

第二种方案

再dubbo-provider.xml文件配置

<dubbo:provider id="payload" payload="11557050"/>


第三种方案


1、在项目中集成MongoDB;

2、在service层把大容量数据存放到MongoDB中;

3、在web层从MongoDB中取出大容量数据。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐