深夜告警风暴:Dubbo 异步调用回调丢失 300 次——一个 tech lead 的自述场景:Dubbo 消费端配置 async=true 异步调用,通过 RpcContext.getFuture() 拿到 CompletableFuture 注册 whenComplete 回调,但回调始终不执行。100 QPS 时正常,500 QPS 时大面积静默,滚动重启恢复,15 分钟后又复现。 路径:Dubbo 2.7.5 DubboInvoker → AllChannelHandler 线程池排队 → DefaultFuture.complete → ThreadlessExecutor 副作用