问题描述 系统A调用系统B的服务,系统A设置了超时上限t1(读超时,或者熔断超时等),系统B服务处理时间为t2。当t1 < t2时,系统A会抛出超时异常,系统B可能处理成功也可能失败,但是系统A无法感知,如下图所示: 影响分析 当请求处理成功时,会造成数据不一致(如数据库新增或修改数据),这对于要求数据强一致的场景(比如支付)是无法接受的; 解决方案 方案1:同步变异步,当请求处理成功时,进行回调;方案2:读超时大于系统处理时间,比如数据库场景;方案3:事务消息,或其它分布式事务技术;