You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解读Kafka日志中message format version含义及相关配置问题

Kafka日志相关问题解答

一、日志内容

[2018-10-27 15:09:19,917] INFO [Log partition=__consumer_offsets-39, dir=/home/ajinkya/software/Kaftka/kafka_2.11-2.0.0/Kafka-logs] Loading producer state till offset 0 with message format version 2 (kafka.log.Log)
[2018-10-27 15:09:19,917] INFO [Log partition=__consumer_offsets-39, dir=/home/ajinkya/software/Kaftka/kafka_2.11-2.0.0/Kafka-logs] Loading producer state till offset 0 with message format version 2 (kafka.log.Log)
[2018-10-27 15:09:19,919] INFO [Log partition=__consumer_offsets-21, dir=/home/ajinkya/software/Kaftka/kafka_2.11-2.0.0/Kafka-logs] Loading producer state till offset 0 with message format version 2 (kafka.log.Log)
[2018-10-27 15:09:19,920] INFO [Log partition=__consumer_offsets-21, dir=/home/ajinkya/software/Kaftka/kafka_2.11-2.0.0/Kafka-logs] Loading producer state till offset 0 with message format version 2 (kafka.log.Log)

二、message format version 2的含义

Message format version是Kafka定义的消息存储格式版本,版本2对应Kafka 2.0.0引入的格式,核心特性包括:

  • 优化了消息存储与压缩效率,降低磁盘占用
  • 支持事务消息的基础能力,为分布式事务场景提供支持
  • 重构消息头结构,减少不必要的元数据开销
  • 向下兼容0.11.0.0及以上版本的客户端,旧版本客户端无法消费该格式消息

三、当前使用的Kafka版本

从日志路径/home/ajinkya/software/Kaftka/kafka_2.11-2.0.0/Kafka-logs可直接判断,当前使用的是Kafka 2.0.0版本,配套的Scala版本为2.11。

四、Broker的log.message.format.version参数值

日志中显示的message format version 2,对应log.message.format.version参数值为2.0。Kafka的格式版本号与Broker主版本号一一映射,格式版本2对应2.0.x系列的Broker版本,该参数决定Broker写入日志时采用的消息格式标准。

五、log.message.format.version参数的查看与设置方法

查看方法

  1. 配置文件查看:打开Kafka核心配置文件server.properties,搜索log.message.format.version字段,即可读取当前配置值。
  2. 命令行查看:使用kafka-configs.sh命令查询Broker动态配置(适用于动态修改过的参数):
./bin/kafka-configs.sh --bootstrap-server <broker主机>:<端口> --describe --entity-type brokers --entity-name <Broker ID>

在输出结果中定位log.message.format.version对应的数值即可。

设置方法

  1. 静态配置(需重启Broker):
    编辑server.properties文件,添加或修改配置项:
    log.message.format.version=2.0
    
    修改完成后重启Broker,新配置即可生效。
  2. 动态配置(无需重启):
    使用kafka-configs.sh命令在线修改参数(仅支持Kafka 0.11.0.0及以上版本):
    ./bin/kafka-configs.sh --bootstrap-server <broker主机>:<端口> --alter --entity-type brokers --entity-name <Broker ID> --add-config log.message.format.version=2.0
    
    动态设置后,Broker新写入的消息会立即采用指定格式,已存储的旧消息格式保持不变。

内容的提问来源于stack exchange,提问作者Priyanka Ghule

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 00:40:16