dubbo超时机制的底层实现

本文深入探讨了Dubbo的超时机制,首先介绍了Dubbo的整体架构和基于NIO的通信机制。接着详细分析了第一种超时机制,说明了在接收到返回报文或等待超时时如何唤醒线程。最后,讨论了异步模式下的另一种超时机制,通过DefaultFuture类的子线程不断检查并处理超时的future,确保异步调用也能支持超时功能。
摘要由CSDN通过智能技术生成

可以先看这边博客对dubbo的整体架构有个基本的了解

DUBBO架构

1 dubbo通信机制

dubbo是一种NIO模式,消费端发起请求后得到一个ResponseFuture,然后消费端一直轮询这个ResponseFuture直至超时或者收到服务端的返回结果

2 第一种超时机制

 public Object get(int timeout) throws RemotingException {
        //1 获取超时时间,该timeout是根据配置文件的优先级获取的
        if (timeout <= 0) {
            timeout = Constants.DEFAULT_TIMEOUT;
        }
        //2 如果response不为空,则代表返回报文已经接收到了
        if (!isDone()) {
            long start = System.currentTimeMillis();
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值