SimpleMessenger分析

概述

SimpleMessenger,继承了Messenger类,用于实现各个模块间传输命令及数据。

架构图

ceph-messenger-simple-frame

通讯协议

子模块

  • Pipes模块
    用于管理tcp网络链接,负责接受、发送数据。
  • Accepter模块
    仅用于接受外部请求链接,而不接收数据。将接收到的链接保存到Pipes模块中,然后由Pipes模块去收发数据。
  • DispatchQueue模块
    接收外部发送来的数据和命令,然后通过“dispatcher”或“fast dispatcher”模块,将数据和命令传送给各个dispatcher
  • dispatcher模块
    用于管理dispatchers,如OSD,MON,MDS等等各种需要通讯的client。
  • fast dispatcher模块
    用于管理 fast dispatchers