当前位置: 首页 > 知识库问答 >
问题:

Kafka压缩:如何在单消息级进行压缩

滑弘扬
2023-03-14

当我向Kafka主题发送消息时,我可能会收到一条比其他消息大得多的消息。

因此需要在单消息级进行压缩。根据https://cwiki.apache.org/confluence/display/kafka/compression,

一组消息可以被压缩并表示为一个压缩消息。

同样,根据https://github.com/apache/kafka/blob/0.10.1/clients/src/main/java/org/apache/kafka/clients/producer/producerconfig.java对属性compresssion.type的描述,

压缩是对全批数据的压缩,因此批处理的效率也会影响压缩比(更多的批处理意味着更好的压缩)。;

我是否应该将批处理大小设置为1/禁用批处理以在每个消息级别进行压缩?

共有1个答案

海典
2023-03-14

压缩与批量生产与否的问题是正交的。但是,如文件中所述:

更多的配料意味着更好的压缩

压缩可以在主题级别(https://kafka.apache.org/documentation/#topicconfigs)中设置,也可以作为生产者配置的一部分(https://kafka.apache.org/documentation/#producerconfigs)设置。此外,同一主题中的不同消息可以用不同的类型进行压缩,因为压缩类型是记录元数据(https://kafka.apache.org/documentation/#recordbatch)的一部分,并且对使用者来说是无缝的。

但是,如果您需要有选择地压缩不同的消息,则无法使用相同的生成器来完成,因为生成器配置是静态的。无论这种选择的动机是什么,您都可以创建两个生产者实例(一个支持压缩,一个不支持压缩),并根据消息内容决定使用哪个生产者来发送消息。

 类似资料:
  • 使用Kafka Streams,我们无法确定在处理写入接收器主题的消息后压缩这些消息所需的配置。 另一方面,使用经典的Kafka Producer,可以通过在KafkaProducer属性上设置配置“compression.type”轻松实现压缩 然而,似乎没有任何记录在案的Kafka Streams压缩处理过的消息的例子。 至于这次(2019年初),有没有一种方法可以使用Kafka流进行压缩?

  • 问题内容: JSON.stringify显然不是非常节省空间。例如,当[123456789,123456789]可能需要大约5个字节时,它将占用20+字节。websocket是否在发送到流之前压缩其JSON? 问题答案: 从本质上讲,WebSocket只是用于TEXT或BINARY数据的一组框架。 它本身不执行压缩。 但是,WebSocket规范允许扩展,并且野外有各种各样的压缩扩展(其中一项的正

  • 我想知道Kafka中信息的压缩大小。 我使用kafka 1.1.0和java kafka connect 1.1.0从我的制作人向主题发送消息。 如果消息对我的制作人来说太大,我会得到一个 消息序列化时为xxx字节,大于使用max.request配置的最大请求大小。大小配置。 设置最大请求。将大小设置为合适的值将导致来自代理的错误消息作为消息。代理配置中的max.bytes也必须相应地进行调整。不

  • 我对Kafka2.6.0中的消息大小配置有点困惑。但让我们讲一个故事: 我们正在使用由3个节点组成的Kafka集群。到目前为止,消息的标准配置。“zstd压缩”被激活。 相关的代理配置很简单: 此时,生产者配置也很简单: 现在我们想把一个8Mbyte的消息放到一个特定的主题中。这些数据的压缩大小只有200 KB。 如果我将这些数据放入主题中,会出现以下错误: 所以我改变了生产者配置如下: 现在制作

  • 我是为了视频压缩而引用这个链接。https://github.com/lalongoo/videocompressor当我压缩。mkv文件时,它的工作和提供更小的大小,但当我压缩。mp4文件时,它提供的大小比视频的原始大小更大。我不明白我必须做什么改变来实现这一点。..这段代码使用MediaCodec进行视频压缩。..是否可以快速压缩?

  • 我在《掌握Kafka Streams and ksqlDB》一书中遇到了以下两个短语,作者使用了两个术语,它们的真正含义是“压缩主题”和“未压缩主题” 他们对“日志压缩”有什么看法吗? 表可以被认为是对数据库的更新。在日志的这种视图中,只保留每个键的当前状态(给定键的最新记录或某种聚合)。表通常是从压缩的主题构建的。 用数据库的说法,流可以被视为插入。每个不同的记录都保留在此日志视图中。流通常是从