Sea*_*ver 4 compression avro apache-kafka
在 Kafka 中,您可以在 Producer 上设置属性来压缩键和值。
compression.codec该参数允许您指定该生产者生成的所有数据的压缩编解码器。有效值为“none”、“gzip”和“snappy”。
http://kafka.apache.org/documentation.html# Producerconfigs
使用 Confluence 平台时,我可以使用KafkaAvroSerialization序列化器。如果我定义avro.codec使用 Kafka 的压缩是否有任何意义,反之亦然?
avro.codec用于压缩块的压缩编解码器的名称,作为字符串。实现需要支持以下编解码器:“null”和“deflate”。如果编解码器不存在,则假定为“null”。下面更详细地描述编解码器。
https://avro.apache.org/docs/1.7.7/spec.html#Object+Container+Files
虽然 KafkaAvroSerializetion 允许您使用 Avro,但您实际上不能在这样做时使用 avro.codec。
为什么?因为avro.codec是Avro的DataFileWriter使用的,而KafkaAvroSerialization中没有使用它(它直接使用DatumWriter生成byte[]记录而不是文件)。
因此,您只会获得非压缩记录,并且应该在 Producer 中设置压缩编解码器。这也意味着生产者有机会压缩包含多个消息的缓冲区,从而提高压缩效率。
| 归档时间: |
|
| 查看次数: |
3605 次 |
| 最近记录: |