线上问题排查-dubbo-Dubbo client can not supported string message

1.问题描述

线上值班时,收到告警通知dubbo 调用异常。

主要报错包括下面两条记录:

[DUBBO] Dubbo client can not supported string message:

[ERROR] [New I/O client worker #1-3] com.alibaba.dubbo.remoting.transport.AbstractCodec - Data length too large: 1309029171, max payload: 12582912, channel: NettyChannel [channel=[id: 0x1ee887ea, /172.30.111.31:59428 => /10.96.10.168:20880]]

2.问题定位

  1. 通过链路日志发现是一个管理后台的接口报错,调用错误率整体不高,对应的代码最近也没有改动,排除是最近上线引起的bug.
  2. 看具体的报错日志,评估和接口的数据调用量有关系。当dubbo接口返回数据数据量太大,超过dubbo 协议中 payload 参数中的设置值时,会触发上述问题。后来通过具体排查操作日志,发现线上有接口在查询客户信息时,没有分页查询了全部,返回数据过大,产生了告警。

3.问题修复

修复问题时,有两条思路,一种是修改dubbo配置文件中payload 参数的设置,另一种是在调用查询接口时,分批调用,减小接口返回数据量。两种方案评估代码影响范围和测试范围后,决定采用第一种,先修改配置文件。具体修改方式参考:

<dubbo:provider timeout="${dubbo.provider.timeout}" retries="2" group="${dubbo.provider.group}" version="${dubbo.provider.version}"  payload="83886080"/>

主要修改payload 参数。

修改以后,发现服务正常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值