dubbo提供者线程池满了后不返回报错结果

Created on 4 Aug 2017  ·  9Comments  ·  Source: apache/dubbo

当其中一台的dubbo提供者线程池满了后,后续消费者在消费到这台满了的机器上是,虽然提供者报错线程池满,但是没有明确给消费者返回异常信息,而是丢弃该请求,这样消费者在以为提供者没执行完直到超时报错,有没有人遇到过?

Most helpful comment

All 9 comments

我们也是这样的,provider满了,consumer还是要等到超时才行,我们就是把超时设置短些。。

感觉这是个bug 提供者池子满了抛出去就好了 消费者拿到异常根据策略是返回失败还是重试其他机器自己决定 直接把消费者的请求丢掉而不返回任何状态有点类似防火墙啊

并发请求导致线程池没有空闲的时候,新的请求被拒绝了,但是并没有立刻返回给消费方,让消费方重新选择或者报错提示,所以导致消费方一直苦苦等待直到超时才发现这次调用失败了,是因为拒绝后的请求并没有被写入channel反馈给消费方

把dispatcher的模式设置为message即可(原生默认是all)

v2.4.x

dubbo.protocol.dispather=message

v2.5.x

dubbo.protocol.dispatcher=message

或者直接修改代码中的默认值,如https://github.com/taige/dubbo/commit/529f26bde8d9f79b6ba4952191818a300ac28028

@wenjiahao 你是用的哪个版本,最新版本的在线程池满后已经是会正常发送异常消息到consumer端了;或者是不是设置了twoway=false

像2.5.3版本

@chickenlj 的确是2.5.3 你用的哪个版本啊

也碰到了……一直超时 某些服务定的60s真的该死 /(ㄒoㄒ)/~~

Was this page helpful?
0 / 5 - 0 ratings

Related issues

luyunfeng picture luyunfeng  ·  3Comments

sunyongfengchina picture sunyongfengchina  ·  3Comments

yiding-he picture yiding-he  ·  4Comments

kekerzzZ picture kekerzzZ  ·  3Comments

wangxiaobai83 picture wangxiaobai83  ·  4Comments