如何从.NET中的 rabbitmq 获得 gzip 消息? (使用一些标题)
Jade0769 回答:如何从.NET(.NET Core)中的Rabbitmq获取gzip消息,提取的数据?
如果要解压缩gzip压缩队列消息,可以使用以下命令:
public static class Gzip {
public static string Decompress(byte[] data) {
using (var inStream = new MemoryStream(data))
using (var outStream = new MemoryStream()) {
using (var gzStream = new GZipStream(inStream,CompressionMode.Decompress))
gzStream.CopyTo(outStream);
return Encoding.UTF8.GetString(outStream.ToArray());
}
}
}
,
AMQP协议不支持压缩。消息有效负载的任何压缩都需要在您自己的代码中完成。另一个答案中提供了这种方法的示例。
一个更好的问题是“我应该在RabbitMQ(或任何其他代理)中压缩消息吗?”答案是“否”。如果您正确使用消息传递,则有效负载很小-不到100kB,并且压缩开销将产生净的性能下降。如果您发现需要压缩消息,则可能还需要选择另一种技术(即数据库)。