如何从.NET(.NET Core)中的Rabbitmq获取gzip消息,提取的数据?

如何从.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,并且压缩开销将产生净的性能下降。如果您发现需要压缩消息,则可能还需要选择另一种技术(即数据库)。

本文链接:https://www.f2er.com/3109826.html

大家都在问