简介
当使用RabbitMQ发布消息时,消息又AMQP规范中的三个低层帧类型组成:
- Basic.publish方法帧;
- 内容头帧;
- 消息体帧;
这三种帧类型按顺序一起工作,以便消息传递时完好无损。
其中,内容头帧中的消息属性是一种预定义的值,这些值通过设置Basic.Properties数据结构进行指定:
- content-type属性:让消费者知道如何解释消息体;
- content-encoding属性:指示消息体使用某种特殊的方式进行压缩或编码;
- message-id和correlation-id属性:表示唯一消息标识和消息响应标识,用于在工作流程中实现消息跟踪;
- timestamp属性:表示消息创建时间;
- expiration属性:表示消息的过期时间;
- delivery-mode属性:将消息写入磁盘或内存队列;
- app-id和user-id属性:帮助追踪出现问题的消息发布者应用程序;
- type属性:表示发布者和消费者之间的契约;
- reply-to属性:实现响应消息的路由;
- headers属性:定义自由格式的属性和实现RabbitMQ路由;
不建议使用的属性有:priority和cluster-id