\subsection{消息属性}

AMQP中的消息属性是消息在生产时确认的,不会被消息队列改变。Pika中使用BasicProperties来配置消息的属性,并在channel.basic_publish()properties参数中赋予消息。

pika.spec.BasicProperties的构造函数可以接受以下参数,这些参数的意义均为AMQP标准定义的。

  • content_type,消息的内容类型,参考MIME TYPE,例如纯文本为plain/text,JSON为application/json
  • content_encoding,消息内容的编码格式,主要用于设置压缩编码格式,如base64或者gzip
  • headers,消息的头信息,键值结构,健最大为255个字符,值可以是任何有效的AMQP值类型。
  • delivery_mode,是否持久化,整型,1表示不持久化,2表示持久化。
  • priority,消息的优先级,取值0到9,一般不建议使用。
  • correlation_id,指定消息的关联ID,常用于回复消息。
  • reply_to,用于指定回复的队列名称。
  • expiration,消息失效时间,255字符内的短字符串,常放置整数时间戳。
  • message_id,消息ID。
  • timestamp,消息的时间戳。
  • type,消息类型。
  • user_id,用户ID。
  • app_id,应用程序ID。
  • cluster_id,集群ID,一般不建议使用。