apache / dubbo

The java implementation of Apache Dubbo. An RPC and microservice framework.
https://dubbo.apache.org/
Apache License 2.0
40.43k stars 26.42k forks source link

使用kryo报超时异常 #5394

Closed Foredoomed closed 4 years ago

Foredoomed commented 4 years ago

Environment

Steps to reproduce this issue

  1. provider设置serilization=kryo kryo版本:4.0.2 kryo-serializers版本:0.45

  2. provider设置超时时间120000

  3. 报错信息:

org.apache.dubbo.remoting.TimeoutException: Waiting server-side response timeout by scan timer. start time: 2019-11-27 17:19:29.464, end time: 2019-11-27 17:19:34.472, client elapsed: 1 ms, server elapsed: 5007 ms, timeout: 5000 ms, request: Request [id=2, version=2.0.2, twoway=true, event=false, broken=false, data=RpcInvocation [methodName=getApps, parameterTypes=[class com.foo.dto.TerminalDTO], arguments=[TerminalDTO(sn=1234567, appType=null, sign=false, version=null, apps=null, pageIndex=1, pageSize=20)], attachments={path=services/com.foo.AppsFilterFacade, dubboApplication=foo, interface=com.foo.AppsFilterFacade, version=1.0.0, timeout=5000}]], channel: /127.0.0.1:43678 -> /127.0.0.1:8085 at org.apache.dubbo.remoting.exchange.support.DefaultFuture.doReceived(DefaultFuture.java:189) at org.apache.dubbo.remoting.exchange.support.DefaultFuture.received(DefaultFuture.java:153) at org.apache.dubbo.remoting.exchange.support.DefaultFuture$TimeoutCheckTask.run(DefaultFuture.java:252) at org.apache.dubbo.common.timer.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:648) at org.apache.dubbo.common.timer.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:727) at org.apache.dubbo.common.timer.HashedWheelTimer$Worker.run(HashedWheelTimer.java:449) at java.lang.Thread.run(Thread.java:748)

chutian52 commented 4 years ago

可以检查下是否由于序列化导致的超时异常

chickenlj commented 4 years ago

I cannot reproduce this issue it's less likely to be a generic Kryo issue. Reopen if you have many more clues to provide.

chickenlj commented 4 years ago

You can check the logs on Provider side, maybe you lack the necessary dependencies for Kryo to work.