dubbo 超时设置和源码分析
本文 dubbo 2.6.2 在工作中碰到一个业务接口时间比较长,需要修改超时时间,不知道原理,在网上搜索,看到有人说如果你觉得自己了解了dubbo的超时机制,那么问问自己以下问题: 超时是针对消费端还是服务端? 超时在哪设置? 超时设置的优先级是什么? 超时的实现原理是什么? 超时解决的是什么问题 ? 如果连这些都回答不上了,那只能说明还没有完全掌握 dubbo的超时机制。 于是索性就自己本地搭了个环境,研究了一下源码。 先来说一说结论: 1、超时是针对消费端的,消费端会抛出TimeoutException 而服务器端仅仅是一个 warn日志 2、超时在消费端、服务器端设置,dubbo会合并这两个设置 3、consumer方法级别 > provider 方法级别 > consumer 接口级别 > provider 接口级别 > consumer 全局级别 > provider 全局级别。如果都没配置,那么就是dubbo默认的1秒 4、见下面分析 5、最主要是宝贵的线程,客户端的用户线程不能因为服务端超时而一直类似wait, 导致无法正常响应其他业务。 ...