tangyanbo1110
风过无痕1110
采纳率0%
2016-06-15 02:49

dubbo服务端有返回,客户端接收到null的问题【紧急】

100

现象

服务端日志已经显示返回结果,结果为自定义对象
格式如下:

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>
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • tangyanbo1110 风过无痕1110 5年前

    @chen_yongkai

    点赞 评论 复制链接分享
  • tangyanbo1110 风过无痕1110 5年前

    出现问题时,并发量可能并不高,不超过100,而且并发量最高的业务,并没有出现异常,反而是一个并发并不高的业务请求查询时,出错概率奇高,发生3次批量调用,20笔调用,3笔出现问题
    调用关系:该出问题业务模块为C,功能服务为B和A,调用次序是,C->B->A,均是dubbo通信调用。
    出问题时,A返回结果,B拿到null,B封装一个结构返回至C,C拿到null。

    点赞 评论 复制链接分享
  • u011606457 _1_1_7_ 5年前

    看起来有点和高并发有关系,出现的几率不大,你们现在的并发峰值大概是多少

    点赞 1 评论 复制链接分享