kafka中的消息压缩

本文概述

  • 消息压缩的需要
  • 生产者批次/记录批次
  • 消息压缩格式
  • 消息压缩的缺点
如我们所见,生产者以文本格式(通常称为JSON格式)将数据发送到Kafka。 JSON有一个缺点,即数据以字符串形式存储。这将创建多个重复的记录以存储在Kafka主题中。因此,它占用大量磁盘空间。因此,需要减少磁盘空间。这可以通过在将数据发送到Kafka之前压缩或保留数据来完成。
消息压缩的需要可能有以下原因可以更好地说明减少消息大小的需要:
  1. 它将减少将数据发送到Kafka所需的延迟和大小。
  2. 它将减少带宽,这将使用户增加发送到代理的净消息。
  3. 当数据通过云平台存储在Kafka中时,可以降低成本。这是因为云服务是付费的。因此,它计算存储在Kafka中的数据量。
  4. 消息压缩不需要对代理和使用者的配置进行任何更改。
  5. 消息压缩不需要对代理和使用者的配置进行任何更改。
  6. 减少的磁盘负载将导致快速的读写操作。
生产者批次/记录批次生产者将消息逐条地写到Kafka。因此,卡夫卡打得很聪明。它等待产生给Kafka的消息。然后,它创建一个批处理并将消息放入其中,直到充满为止。然后,将批次发送到Kafka。这种批次的类型称为生产者批次。默认的批处理大小为16KB,最大可以为任何大小。批次大小很大,生产者请求的压缩,吞吐量和效率更大。
kafka中的消息压缩

文章图片
注意:消息大小不应超过批处理大小。否则,该消息将不会被批量处理。此外,批次是按分区分配的,因此请勿将其设置为很高的数量。生产者批次更大,有效使用消息压缩技术。
消息压缩格式消息压缩总是在生产者端进行,因此不需要在消费者或代理端更改配置。
kafka中的消息压缩

文章图片
在该图中,创建了200 MB的生产者批次。压缩后,它减少到101 MB。
为了压缩数据,使用了“ compression.type”。这使用户可以确定压缩类型。类型可以是’ gzip’ ,’ snappy’ ,’ lz4’ 或’ none’ (默认)。 “ gzip”具有最大的压缩率。
消息压缩的缺点消息压缩有以下缺点:
  1. 生产者将一些CPU周期用于压缩。
  2. 使用者使用一些CPU周期进行解压缩。
  3. 这些缺点导致CPU使用率增加。
【kafka中的消息压缩】因此,消息压缩是减少磁盘负载的更好选择。

    推荐阅读