zoukankan      html  css  js  c++  java
  • dubbo源码

    remote root:
    定义基本网络通信模型:
      endpoint为一个网络节点
      channel为一条通信链路,区分本地和远端。只有发送到通道的操作。
      channelhandler定义channel变化时的处理器,比如通道有数据发送、数据接受、连接通道、断开连接通道时做什么处理
      dispatcher负责对channelhandler类型的分配,根据url里的定义决定使用哪种channelhandler
      transporter抽象底层不同网络通信框架的绑定和连接基本操作
      client基本客户端操作,目前只有重连
      remoteserver基本服务端操作,判断是否绑定和获取和服务端建立连接的channel列表
    transport root:
      定义server和client的基本操作以及多消息、解码消息的channelhandler
    transport dispatcher:
      定义各种不同线程分配策略的channelhandler
    exchange root:
      定义通信的request、response模型:
        exchangechannel可以异步发送请求且获取响应的通道
        exchangeserver定义在exchange层的server,主要表现是跟exchangechannel关联,跟channel没有关系了。
        exchangeclient定义exchange层的client,拥有exchangechannel的请求响应功能。
        exchanger类似于transport层的transporter,只不过exchanger是定义在exchange层,表现为跟exchangeclient和exchagneserver关联,跟client和remoteserver没有关系
        exchangehandler额外定义了replay方法,不知道是有啥用 @todo:

        request定义请求的基本属性

        response定义response基本属性

    exchange support root:

      exchange层需要的辅助类:

         defaultfuture获取异步执行结果的容器类

         exchangehandlerdispatcher封装了transport层的channelhandler、exchangehandler层的replay、telnet handler

    exchange support header:

      exchange层的具体实现:

        headerexchange实现exchange层的绑定和连接

        headerexchangechannel实现exchangechannel的异步消息发送

        abstracttimertask定义异步任务

    buffer:

      定义缓存容器以及基于缓存容器的输入输出流

        channelbuffer定义缓存操作接口

        abstractchannelbuffer定义缓存容器基本属性

        bytebufferbackedchannelbuffer是基于jdk的bytebuffer做的缓存容器

        heapchannelbuffer是基于堆内存的缓存容器

        channelbufferinputstream和channelbufferoutputstream是基于缓存容器的输入输出流

        channelbufferfactrory缓存容器工厂

    以上是remote包api的功能描述,在remote下其他具体通信包有的实现了api里的接口,有的是完全独立的接口,比如netty、netty4、http都是实现了api的接口,但是redis、zookeeper并没有实现接口,不知道这是待优化的点还是就是要这么设计。

    总而言之,remote包是定义通用对外远程请求的基本操作。

          

  • 相关阅读:
    ubuntu实时显示网速cpu占用和内存占用率
    删除以....开头的所有文件
    0.0.....1 至 0.99.......9 之间正则
    引入腾讯视频播放,可控制是否暂停播放
    解决微信小程序textarea层级太高遮挡其他组件的问题
    查看某分支推送记录
    小程序下载canvas生成图片
    微信小程序企业付款到个人
    秒 转化为 时:分:秒 ------- 类似倒计时
    iOS--崩溃日志的格式化分析---格式化crash日志
  • 原文地址:https://www.cnblogs.com/caiyao/p/14843104.html
Copyright © 2011-2022 走看看