ceph 网络模块 源码分析 三

ceph 网络模块 源码分析 三

第一篇第二篇主要讲了ceph网络模块的基材框架:Messenger和Dispatcher.本篇主要讲解下Messenger的主要实现方式之一: SimpleMessenger,它也是目前最稳定的也,应用于生产环境的实现.
网络模块类图

SimpleMessenger

Messenger是一个接口,它定义的了消息发送和接受的等各种接口.SimpleMessenger是Messenger的一个具体实现,它由三个重要的模块组成:

  • Accepter: 负责监听客户端连接请求
  • DispatchQueue: 接收消息的缓冲队列
  • Pipe: 负责具体的接受和发送消息

Accepter

Accepter比较简单,它继承自Thread类,主要负责监听客户端的连接请求.它有两个重要函数bind()和entry().前者负责socket的创建,绑定和监听.后者使用poll监听socket上的请求连接,如果有新请求到来,那么调用Messenger的add_accept_pipe(sd)把socket传递给Pipe,用于数据通信.

int Accepter::bind(const entity_addr_t &bind_addr, const set&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值