Kafka ProducerRecord是Kafka Producer发送消息时创建的一个对象,它包含了要发送的消息及其元数据。以下是一些常见的Kafka ProducerRecord配置:
- key:这是消息的键,用于在Kafka的分区中进行分布。如果未指定key,则将使用null作为key。可以使用字符串、字节数组或自定义对象作为key。
- value:这是消息的值,即要发送的实际数据。可以使用字符串、字节数组或自定义对象作为value。
- topic:这是要发送消息的主题。必须指定一个主题名称。
- partition:这是要发送消息的分区。如果未指定partition,则将使用Kafka自动分配的分区。可以使用整数或分区器对象作为partition。
- timestamp:这是消息的时间戳。如果未指定timestamp,则将使用当前时间戳。可以使用长整型或java.time.Instant对象作为timestamp。
- headers:这是消息的头信息,用于传递额外的元数据。可以使用Header对象作为headers。
- keySerializer:这是key的序列化器。如果未指定keySerializer,则将使用默认的序列化器。可以使用StringSerializer、ByteArraySerializer或其他序列化器作为keySerializer。
- valueSerializer:这是value的序列化器。如果未指定valueSerializer,则将使用默认的序列化器。可以使用StringSerializer、ByteArraySerializer或其他序列化器作为valueSerializer。
- acks:这是生产者配置参数acks,它指定了Kafka集群需要确认消息被写入到本地日志之前需要多少个分区的写操作已经完成。
- retries:这是生产者配置参数retries,它指定了生产者在遇到可恢复的错误时尝试重新发送消息的次数。
- batch.size:这是生产者配置参数batch.size,它指定了生产者在将消息发送到Kafka集群之前可以缓存的最大消息大小(以字节为单位)。
- linger.ms:这是生产者配置参数linger.ms,它指定了生产者在将消息发送到Kafka集群之前等待更多消息加入批次的最长时间(以毫秒为单位)。
- buffer.memory:这是生产者配置参数buffer.memory,它指定了生产者可以用于缓存消息的最大内存量(以字节为单位)。