本文主要讲解“如何解决Dubbo服务限制数据长度过大3360 13055248的问题”。本文的解释简单明了,易学易懂。接下来请跟随边肖的思路,一起学习学习“如何解决数据长度过大3360 13055248受限于Dubbo服务的问题”!
当dubbo服务提供商向消费层传输大数据容量数据时,会受到Dubbo的限制,并报告类似以下的异常:
2019-08-23 11:04:31.711【DubboServerHandler-XX。XX . XX . xxx:20880-thread-87]-[ERROR][com . Alibaba . dubbo . remoting . transport . abstract codec : 86]-数据长度太大: 13055248,max payload: 8388608,channel : NettyChannel[channel=[id :0x 7ed 65435,/XX。XX.XX.XXX:54065=/XX。XX.XX.XXX:20880]]
java.io.IOException:数据长度太大: 13055248,最大payload: 8388608,channel : NettyChannel[channel=[id :0x 7ed 65435,/XX。XX.XX.XXX:54065=/XX。XX.XX.XXX:20880]]
原因是dubbo服务限制了大数据的传输,最大限制为8M。此时,您可以修改Dubbo提供程序的配置层和有效负载属性值。
1)在dubbo-provider.properties中添加
#当dubbo服务商层向消费层传输大数据容量的对象时,会受到Dubbo的限制,默认为8M,改为20M,1M=1048576。
dubbo . protocol . dubbo . payload=20971520
2)在dubbo-provider-context.xml中添加红色属性及其对应的值。
dubbo :协议名称='${dubbo.protocol.name} '端口='${dubbo.protocol.port} '有效负载=' $ { dubbo . protocol . dubbo . payload } '/
我们来谈谈dubbo :协议中的属性。
Threadpool:线程池类型,可选:固定/缓存,默认固定。
线程:服务线程池大小(固定大小),默认为100。
有效负载:请求和响应数据包大小限制,单位:字节,默认值为88388608(=8M)
例如:
dubbo :协议名称='dubbo '端口='27001 '线程池='缓存'线程='20'/
线程池
固定大小的固定线程池,启动时建立线程,一直持有不关闭。(默认)
缓存的缓存线程池,它将在空闲一分钟时自动删除,并在需要时重建。
有限的可扩展线程池,但池中的线程数量只会增长而不会减少。(避免收缩过程中突然出现大流量导致的性能问题)。
感谢阅读。以上就是“如何解决Dubbo服务限制数据长度过大3360 13055248的问题”的内容。看完这篇文章,相信你对如何解决Dubbo服务限制数据长度过大3360 13055248的问题有了更深的理解,具体用法还需要实践验证。在这里,边肖将为您推送更多关于知识点的文章,敬请关注!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/97036.html