Class ProducerRecord<K,V>
java.lang.Object
org.apache.kafka.clients.producer.ProducerRecord<K,V>
public class ProducerRecord<K,V> extends Object
A key/value pair to be sent to Kafka. This consists of a topic name to which the record is being sent, an optional
partition number, and an optional key and value.
If the topic is configured to use
If the topic is configured to use
If a valid partition number is specified that partition will be used when sending the record. If no partition is specified but a key is present a partition will be chosen using a hash of the key. If neither key nor partition is present a partition will be assigned in a round-robin fashion.
The record also has an associated timestamp. If the user did not provide a timestamp, the producer will stamp the record with its current time. The timestamp eventually used by Kafka depends on the timestamp type configured for the topic.
CreateTime
,
the timestamp in the producer record will be used by the broker.
LogAppendTime
,
the timestamp in the producer record will be overwritten by the broker with the broker local time when it appends the
message to its log.
In either of the cases above, the timestamp that has actually been used will be returned to user in
RecordMetadata
-
Constructor Summary
Constructors Constructor Description ProducerRecord(String topic, Integer partition, Long timestamp, K key, V value)
Creates a record with a specified timestamp to be sent to a specified topic and partitionProducerRecord(String topic, Integer partition, Long timestamp, K key, V value, Iterable<Header> headers)
Creates a record with a specified timestamp to be sent to a specified topic and partitionProducerRecord(String topic, Integer partition, K key, V value)
Creates a record to be sent to a specified topic and partitionProducerRecord(String topic, Integer partition, K key, V value, Iterable<Header> headers)
Creates a record to be sent to a specified topic and partitionProducerRecord(String topic, K key, V value)
Create a record to be sent to KafkaProducerRecord(String topic, V value)
Create a record with no key -
Method Summary
-
Constructor Details
-
ProducerRecord
public ProducerRecord(String topic, Integer partition, Long timestamp, K key, V value, Iterable<Header> headers)Creates a record with a specified timestamp to be sent to a specified topic and partition- Parameters:
topic
- The topic the record will be appended topartition
- The partition to which the record should be senttimestamp
- The timestamp of the record, in milliseconds since epoch. If null, the producer will assign the timestamp using System.currentTimeMillis().key
- The key that will be included in the recordvalue
- The record contentsheaders
- the headers that will be included in the record
-
ProducerRecord
Creates a record with a specified timestamp to be sent to a specified topic and partition- Parameters:
topic
- The topic the record will be appended topartition
- The partition to which the record should be senttimestamp
- The timestamp of the record, in milliseconds since epoch. If null, the producer will assign the timestamp using System.currentTimeMillis().key
- The key that will be included in the recordvalue
- The record contents
-
ProducerRecord
Creates a record to be sent to a specified topic and partition- Parameters:
topic
- The topic the record will be appended topartition
- The partition to which the record should be sentkey
- The key that will be included in the recordvalue
- The record contentsheaders
- The headers that will be included in the record
-
ProducerRecord
Creates a record to be sent to a specified topic and partition- Parameters:
topic
- The topic the record will be appended topartition
- The partition to which the record should be sentkey
- The key that will be included in the recordvalue
- The record contents
-
ProducerRecord
Create a record to be sent to Kafka- Parameters:
topic
- The topic the record will be appended tokey
- The key that will be included in the recordvalue
- The record contents
-
ProducerRecord
Create a record with no key- Parameters:
topic
- The topic this record should be sent tovalue
- The record contents
-
-
Method Details
-
topic
- Returns:
- The topic this record is being sent to
-
headers
- Returns:
- The headers
-
key
- Returns:
- The key (or null if no key is specified)
-
value
- Returns:
- The value
-
timestamp
- Returns:
- The timestamp, which is in milliseconds since epoch.
-
partition
- Returns:
- The partition to which the record will be sent (or null if no partition was specified)
-
toString
-
equals
-
hashCode
public int hashCode()
-