现象
服务端日志已经显示返回结果,结果为自定义对象
格式如下:
AcctQueryFacadeImpl.acctBalanceQuery00, resp=AcctBalanceQuery00Resp[uid=1355739,acctStatus=N,createTime=Fri Mar 04 21:36:31 CST 2016,updateTime=Wed Apr 20 19:52:24 CST 2016,acctId=4985191,balance=0,frozenBalance=0,withdrawBalance=0,respDesc=成功,respCode=000000], time=2ms
客户端接收到的对象为null
该现象并不是必现,
- 现象1:调用acctBalanceQuery00方法一天有几十万次,目前出现问题的仅3例
- 现象2:有2条失败数据,重试之后,1条成功,1条仍然失败
- 现象3:很多业务调用acctBalanceQuery00方法,但目前只有1个业务出问题,这些业务入参基本一样,(此现象也许是巧合)
- 现象4:用dubbo telnet invoke acctBalanceQuery00方法,有结果返回,用出问题的数据invoke,也有结果返回,所有机器都试过
环境
jdk1.8
dubbo版本 2.5.3
服务端4台,客户端10台左右
dubbo服务端配置如下:
<dubbo:application name="xxx" owner="yy"/>
<dubbo:registry protocol="zookeeper" client="zkclient" address="${dubbo.zk.servers}" group="${dubbo.zk.group}"></dubbo:registry>
<dubbo:protocol name="dubbo" port="20909"></dubbo:protocol>
<dubbo:provider retries="0" timeout="6000"></dubbo:provider>
<dubbo:service interface="xxxx" ref="xxx"></dubbo:service>
dubbo消费端配置:
<dubbo:application name="${application.name}" owner="${dubbo.application.owner}"/>
<dubbo:registry protocol="zookeeper" client="zkclient" address="${dubbo.zk.servers}" group="${dubbo.zk.group}"></dubbo:registry>
<dubbo:protocol name="dubbo" port="${dubbo.protocol.port}"></dubbo:protocol>
<dubbo:monitor address="${dubbo.monitor.address}"></dubbo:monitor>
<dubbo:consumer retries="0" timeout="6000" check="false"></dubbo:consumer>