美文网首页
dubbo信息交换

dubbo信息交换

作者: 忘净空 | 来源:发表于2017-12-26 11:16 被阅读50次

信息交换层(Exchange):封装请求响应模式,同步转异步,以Request和Response为中心,扩展接口为Exchanger、ExchangeChannel、ExchangeClient和ExchangeServer。

源码走读

DubboInvoker类的doInvoke方法开始

image.png

顺着同步调用的方法往下走!


HeaderExchangeChannel类的request

封装request请求参数,详细看DefaultFuture future = new DefaultFuture(channel, req, timeout)方法。

如何获取Result呢?请看DefaultFuture的get方法。



其实get方法中处理很简单,就是没有执行完成,线程切换到等到状态,那么线程何时唤醒呢?

HeaderExchangeHandler类received方法

顺着方法一直往下追,将在DefaultFuture类中看到下面的代码。



唤醒线程

问题

  1. 封装request请求的时候为何要将requestId作为key,DefaultFuture作为value塞进Map中。

dubbo协议单一长连接,但是客户端多线程并发请求,为了保证request和response对应需要request标识一个id,同时response也携带这个id。

相关文章

  • dubbo信息交换

    信息交换层(Exchange):封装请求响应模式,同步转异步,以Request和Response为中心,扩展接口为...

  • Dubbo——Exchange 层剖析

    前言 Exchange层,属于信息交换层,是对Request和Response的抽象。 Dubbo Remotin...

  • dubbo技术内幕十一 Endpoint 之 Client

    如上所示,在dubbo的自介里面,是这样介绍exchange层与transport层的exchange 信息交换层...

  • dubbo笔记-remoting(7)心跳检查

    Dubbo采用双向心跳的方式检测Client端与Server端的连通性。 1 心跳请求的发送 在信息交换层服务端实...

  • 童话|交换信息

    雷暴云陷进软软的云团里,悄悄观察着那个人影。 云堆后面的影子拿出一个葫芦状的容器,打开盖子向云层下倾倒。 “他在撒...

  • dubbo初了解

    dubbo作为阿里的开源rpc中间件,应用越来越广泛,从dubbo官网 可以了解到详细信息 配置 dubbo源码中...

  • dubbo源码分析19 -- 服务治理

    在之前的 dubbo 源码分析中我们分析了 dubbo 的服务暴露。provider 把需要暴露的服务地址信息注册...

  • SpringBoot 整合 Dubbo错误收集

    SpringBoot 整合 Dubbo CuratorFrameworkFactory找不到 错误信息:java....

  • 人需要信息交换

    信息爆炸的时代,由于人的精力有限,人们需要某种机制来控制信息的进入量,守门员理论就是这样,而在当代社会,智能化的推...

  • 时间机器

    数学可以跨越一维二维三维以及分数维 在这之间随意计算和变换信息 信息交换➡️能量交换➡️物资交换 故我说:维度通讯...

网友评论

      本文标题:dubbo信息交换

      本文链接:https://www.haomeiwen.com/subject/rnpdgxtx.html