该文档称在producer.properties中添加行compression.codec=gzip
以压缩消息。
但是,当我打开数据文件,例如:0000000000000.log
时,我发现数据看起来不像是压缩的。应该如何检查kafka中的数据是否已被压缩?
P.S:每次测试我都会停止Kafka集群和Zookeeper并删除kafka-logs和Zookeeper中的所有数据,然后再次启动服务器并创建一个新主题。
答案 0 :(得分:1)
此配置的Java ProducerConfig
类已更改。
public static final String COMPRESSION_TYPE_CONFIG = "compression.type";
我使用0.8.2.1
使用java客户端(ProducerConfig.COMPRESSION_TYPE_CONFIG
)成功生成了消息,并且工作正常。
示例:
props.put(ProducerConfig.COMPRESSION_TYPE_CONFIG, "gzip");
或者在compression.type=gzip
文件中为Java客户端设置server.properties
。
更新cli工具
阅读命令行工具的用法:
chrisblack:kafka:% ./bin/kafka-console-producer.sh
...
--compression-codec [compression-codec] The compression codec: either 'none',
'gzip', 'snappy', or 'lz4'.If
specified without value, then it
defaults to 'gzip'
...
--new-producer Use the new producer implementation.
--producer-property <producer_prop> A mechanism to pass user-defined
properties in the form key=value to
the producer.
--property <prop> A mechanism to pass user-defined
properties in the form key=value to
the message reader. This allows
custom configuration for a user-
defined message reader.
...
尝试从shell运行类似的命令:
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test_compression --compression-codec