消费迭代器会透明地解压缩压缩数据,并只返回未压缩的消息
。compression.codec
ProducerConfig属性提供有效/支持的压缩类型。我找不到任何示例或说明,说明在消费者端有任何解压缩方法。如果我理解有误,请指正。我也遇到了v0.8.1版本的同样问题,Kafka中的压缩解压文档非常不好,除了说消费者应该“透明地”解压缩压缩数据之外,它从来没有做到过。
Kafka网站上使用ConsumerIterator的高级消费者客户端示例仅适用于未压缩的数据。一旦我在生产者客户端启用压缩,消息就永远无法进入以下的“while”循环。希望他们能尽快解决这个问题,或者他们不应该声称这个功能,因为有些用户可能会使用Kafka来传输需要批处理和压缩功能的大型消息。
ConsumerIterator <byte[], byte[]> it = stream.iterator();
while(it.hasNext())
{
String message = new String(it.next().message());
}