ceph 网络模块 源码分析 一

ceph 网络模块 源码分析 一

ceph的网络模块主要用于各进程之间的通信,主要用于src/msg目录中.
网络模块中最基础的两个部分是Messenger和Message,前者用于消息的接收和发送,后者表示消息本身.
本篇主要简单介绍下消息类Message.

消息

消息的定义比较简单,它直接使用类Message来实现,ceph中不同类型的消息都是通过继承Message类来实现的,当然用户也可以通过继承Message来自定义其它类型的消息.想要了解ceph中定义和使用的不同message类型,可以参考src/messages目录.

ceph的消息主要由消息头header,消息内容data和消息尾footer组成,当然还有其它一些元数据,比如发送时间,接受时间等.Message的成员函数主要由各种set()和get()组成,主要用于设置或者获取Message中的数据成员.

class Message {
protected:
	ceph_msg_header header; // 消息头
	ceph_msg_footer footer; // 消息尾
	bufferlist data; // 消息本身
	
	utime_t recv_stamp; // 消息开始接收的时间
	utime_t recv_complete_stamp; // 消息结束接收的时间
	utime_t dispatch_stamp; // 消息发送的时间
	
	ConnectionRef connection; // 消息属于的连接
	uint32_t magic; // 消息魔术字,主要用校验
}

消息头

消息头相当于消息的信封,它定义了消息的一些元数据,比方说消息的序号,事务id,类型,优先级,版本号,以及消息的长度等.

struc
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值