📜  kafka 中的消息压缩

📅  最后修改于: 2021-01-05 03:01:03             🧑  作者: Mango

kafka 中的邮件压缩

如我们所见,生产者以文本格式(通常称为JSON格式)将数据发送到Kafka。 JSON有一个缺点,即数据以字符串形式存储。这将创建多个重复的记录以存储在Kafka主题中。因此,它占用大量磁盘空间。因此,需要减少磁盘空间。这可以通过在将数据发送到Kafka之前压缩或保留数据来完成。

需要邮件压缩

可能有以下原因可以更好地说明减少消息大小的需要:

  • 它将减少将数据发送到Kafka所需的延迟和大小。
  • 它将减少带宽,这将使用户增加发送到代理的净消息。
  • 当数据通过云平台存储在Kafka中时,可以降低成本。这是因为云服务是付费的。因此,它计算存储在Kafka中的数据量。
  • 消息压缩不需要对代理和使用者的配置进行任何更改。
  • 消息压缩不需要对代理和使用者的配置进行任何更改。
  • 减少的磁盘负载将导致快速的读写操作。

生产者批次/记录批次

生产者将消息逐条地写到Kafka。因此, kafka 打得很聪明。它等待产生给Kafka的消息。然后,它将创建一个批处理并将消息放入其中,直到充满为止。然后,将批次发送到Kafka。这种批次的类型称为生产者批次。默认的批处理大小为16KB,最大可以为任何大小。批次大小较大,生产者请求的压缩,吞吐量和效率更大。


注意:邮件大小不应超过批处理大小。否则,该邮件将不会被批量处理。此外,批次是按分区分配的,因此请勿将其设置为很高的数量。

生产者批次更大,有效使用消息压缩技术。

邮件压缩格式

消息压缩始终在生产者端进行,因此不需要在消费者或代理端更改配置。

在该图中,创建了200 MB的生产者批次。压缩后,它减少到101 MB。

为了压缩数据,使用了“ compression.type”。这使用户可以决定压缩的类型。类型可以是'gzip','snappy','lz4'或'none'(默认)。 “ gzip”具有最大的压缩率。

消息压缩的缺点

消息压缩有以下缺点:

  • 生产者将一些CPU周期用于压缩。
  • 使用者使用一些CPU周期进行解压缩。
  • 这些缺点导致CPU使用率增加。

因此,消息压缩是减少磁盘负载的更好选择。