Kafka的ConsumerRecord是消费者从Kafka主题中读取消息的基本数据结构,它包含了以下主要的信息:
- offset:这是消费者开始读取该分区消息的位置。当消费者开始读取某个分区的消息时,它的offset会被设置为该分区中第一个可用的消息的offset。每次成功读取一条消息后,offset会递增。
- topic:这是消息所属的Kafka主题的名称。
- partition:这是消息所在的分区编号。在Kafka中,每条消息都会被发送到其对应主题的一个或多个分区中。
- key:这是消息的键(Key),用于标识消息的主题和分区。在Kafka 0.11及以后的版本中,key不再用于负载均衡,但可用于其他目的,如确保相同键的消息被发送到同一个分区。
- value:这是消息的值(Value),包含了实际要传输的数据。
- timestamp:这是消息的时间戳,表示消息被发送到Kafka集群的时间。这个时间戳可以用于消息的排序、过期处理等。
- headers:这是一个可选项,用于存储一些额外的元数据。每个header都是一个键值对,其中key是一个字符串,value可以是任意类型的数据。
- checksum:这是Kafka 2.4引入的一个新特性,用于验证消息的完整性。当启用校验和时,Kafka会在发送消息时计算其校验和,并在接收消息时验证校验和是否匹配。
这些信息共同构成了一个完整的Kafka ConsumerRecord对象,消费者可以利用这些信息来处理从Kafka集群中读取的消息。