kafka消息压缩算法
kafka是如何压缩消息的? 要弄清楚这个问题,就要从kafka的消息格式说起。kafka的消息层次分为两层:消息集合(message set)以及消息(message)。一个消息集合包含若干条日志项(record item),而日志项才是真正封装消息的地方。kafka底层的消息日志由一系列消息集合日志项组成。kafka通常不会直接操作具体的一条条消息,它总是在消息集合这个层面上进行写入操作。 在kafka中,压缩可能会发生在两个地方:生产者端和broker端。 生产者程序中配置compression.type参数即表示启动指定类型的压缩算法。 public class KafkaProduce { public void kafkaProducer() throws Exception { Properties pro = new Properties(); ...//其他配置参数 pro.put("partitioner.class", "kafka.KafkaPartitioner"); // 启用压缩 pro.put("compression.type", "gzip"); KafkaProducer config = new KafkaProducer(pro); } 它表明producer的压缩算法使用的是gzip