Kafka的ConsumerRecord
是消费者从Kafka主题中读取消息时获得的基本数据结构。它包含了一些关键字段,这些字段对于消息的处理和跟踪非常重要。以下是ConsumerRecord
的主要字段:
- topic: 消息所属的Kafka主题名称。
- partition: 消息所属的分区编号。
- offset: 该消息在分区中的偏移量,表示这是该分区中的第几条消息。
- key: 发送方设置的消息键(Key),可以是任意类型。如果未设置键,则为null。
- value: 发送方设置的消息值(Value),也可以是任意类型。如果未设置值,则为null。
- timestamp: 消息的时间戳,表示消息被发送的时间。这个时间戳是在生产者端设置的,Kafka消费者可以使用它来进行一些时间相关的操作,比如过滤过期消息。
- timestampType: 时间戳的类型。Kafka支持两种类型的时间戳:
TimestampType.CREATE_TIME
(消息创建时的时间)和TimestampType.LOG_APPEND_TIME
(消息被写入Kafka日志的时间)。这个字段用于指示使用时间戳的哪种类型。
- headers: 一个
Header
对象的集合,可以包含任意键值对。这些头部信息通常用于传递元数据,比如消息的序列号、校验和等。
- leaderEpoch: 当前分区的领导者epoch值。这个字段主要用于跟踪分区的领导者变化,以及进行一些容错处理。
请注意,上述字段可能因Kafka的版本和配置而略有差异。在实际使用中,建议查阅您所使用的Kafka客户端库的文档以获取最准确的信息。