kafka-consumer-groups.sh --bootstrap-server kafka:9092 \
  --describe --group order-consumer
# producer.properties
compression.type=lz4

生产端升级后把压缩改成 zstd,部分老服务消费时报 UnsupportedCompressionTypeException: ZSTD is not supported,一个 topic 里两种客户端混跑。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:zstd 从 2.1 才开始支持,老客户端编译时没带这个编解码器。broker 只负责原样存,解压失败发生在消费端。

「Kafka 压缩算法不兼容」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。

把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。改完隔一天再看一次,当场正常不代表能稳住。

测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。

处理上按这个顺序:先查消费端客户端版本 确认是否低于 2.8;统一改成 lz4 兼容性最好;改完让生产端和消费端都重启 配置不会热生效;用 console-consumer 拉一条确认能解压。

确认没问题再收工,console-consumer 能正常打印消息体 消费端不再出现 UnsupportedCompressionTypeException。

作者 9823189