1. Message Buffer保存变长消息。
  2. 一次Send对应一条消息。
  3. 一次Receive最多返回一条完整消息。
  4. 多次Send不会被一次Receive合并。
  5. 一条消息不会被拆成多次Receive。
  6. 接收数组必须能容纳完整消息。
  7. Buffer容量还包含消息长度字段开销。
  8. 默认使用场景仍然是单Writer、单Reader。

适用场景

Message Buffer适合:

  • 不同长度的命令;
  • 不同长度的协议帧;
  • 日志字符串;
  • 模块间变长消息;
  • 一写一读的消息通道。
特性QueueMessage Buffer
消息长度固定可变
消息边界保留保留
多生产者/消费者支持较好默认单写单读
结构体传递很适合需要自行定义格式
变长协议帧浪费固定空间更适合