个性化阅读
专注于IT技术分析

kafka中的消息压缩

点击下载

本文概述

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

消息压缩的需要

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

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

生产者批次/记录批次

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

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

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

消息压缩格式

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

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

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

消息压缩的缺点

消息压缩有以下缺点:

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

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


赞(1)
未经允许不得转载:srcmini » kafka中的消息压缩

评论 抢沙发

评论前必须登录!