RabbitMQ 消息属性

Ara*_*reh 4 java rabbitmq

我在 RabbitMQ 中有这样的代码:

byte[] rawBytes = serialize(trxEntities);    
byte[] zipped = rawBytes;  
if (shouldBeCompress) {  
zipped = compressor.compress(rawBytes);  
}  
BasicProperties persistentBasic = MessageProperties.PERSISTENT_BASIC;  
channel.basicPublish("", queueName, persistentBasic, zipped);  
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我的一些消息应该被压缩,而其他一些则不应该被压缩。
有什么方法可以设置任何属性来告诉消费者“嘿!这是一条压缩消息”?

附言。“ com.rabbitmq.client.AMQP.BasicProperties.BasicProperties(..., Map headers, ...) ”对我有帮助吗?我的意思是我可以在 BasicProperties.header 中设置任何参数吗?

Ray*_*Tau 5

我想你可以在标题中添加任何你喜欢的内容。但是,有一个名为“contentEncoding”的字段,我认为它更适合这种情况。您可以在此字段中输入“gzip”、“deflate”或压缩算法,请查看此页面以了解为 HTTP 定义的编码:http ://www.w3.org/Protocols/rfc2616/rfc2616-sec3 .html#sec3.5