例如假设使用lz4压缩类型,返回的输出流实体对象为KafkaLZ4BlockOutputStream , 这里面有写入消息的方法和压缩方法。...使用增量可以有效节约内存
offsetDelta: 位移的增量,使用可变字段, 使用增量可以有效节约内存
keyLength: key的长度,使用可变字段, 如果没有key,该值为-1。...valueLength:value的长度,使用可变字段, 如果没有key,改值为-1.
value: value的信息,正常存储,如果value==null,则该值也不存在。...关闭输出流appendStream并压缩数据
在这个过程中,也会将appendStream关闭掉, 也就是用于存储消息体的输出流,那么在它调用 out.flush()的时候就会调用对应的实现类流,比如我们的压缩类型是...的校验值, 计算该值是从attributes的位置开始计算的。