http://git-wip-us.apache.org/repos/asf/kafka-site/blob/b91f7909/0100/javadoc/org/apache/kafka/clients/consumer/package-summary.html ---------------------------------------------------------------------- diff --git a/0100/javadoc/org/apache/kafka/clients/consumer/package-summary.html b/0100/javadoc/org/apache/kafka/clients/consumer/package-summary.html new file mode 100644 index 0000000..863be59 --- /dev/null +++ b/0100/javadoc/org/apache/kafka/clients/consumer/package-summary.html @@ -0,0 +1,269 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (version 1.7.0_79) on Tue May 17 21:36:38 PDT 2016 --> +<title>org.apache.kafka.clients.consumer (clients 0.10.0.0 API)</title> +<meta name="date" content="2016-05-17"> +<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style"> +</head> +<body> +<script type="text/javascript"><!-- + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="org.apache.kafka.clients.consumer (clients 0.10.0.0 API)"; + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar_top"> +<!-- --> +</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li class="navBarCell1Rev">Package</li> +<li>Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev Package</li> +<li><a href="../../../../../org/apache/kafka/clients/producer/package-summary.html">Next Package</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?org/apache/kafka/clients/consumer/package-summary.html" target="_top">Frames</a></li> +<li><a href="package-summary.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip-navbar_top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 title="Package" class="title">Package org.apache.kafka.clients.consumer</h1> +</div> +<div class="contentContainer"> +<ul class="blockList"> +<li class="blockList"> +<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation"> +<caption><span>Interface Summary</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Interface</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../../org/apache/kafka/clients/consumer/Consumer.html" title="interface in org.apache.kafka.clients.consumer">Consumer</a><K,V></td> +<td class="colLast"> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../../org/apache/kafka/clients/consumer/ConsumerInterceptor.html" title="interface in org.apache.kafka.clients.consumer">ConsumerInterceptor</a><K,V></td> +<td class="colLast"> +<div class="block">A plugin interface that allows you to intercept (and possibly mutate) records received by the consumer.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../../org/apache/kafka/clients/consumer/ConsumerRebalanceListener.html" title="interface in org.apache.kafka.clients.consumer">ConsumerRebalanceListener</a></td> +<td class="colLast"> +<div class="block">A callback interface that the user can implement to trigger custom actions when the set of partitions assigned to the + consumer changes.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../../org/apache/kafka/clients/consumer/OffsetCommitCallback.html" title="interface in org.apache.kafka.clients.consumer">OffsetCommitCallback</a></td> +<td class="colLast"> +<div class="block">A callback interface that the user can implement to trigger custom actions when a commit request completes.</div> +</td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation"> +<caption><span>Class Summary</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Class</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../../org/apache/kafka/clients/consumer/ConsumerConfig.html" title="class in org.apache.kafka.clients.consumer">ConsumerConfig</a></td> +<td class="colLast"> +<div class="block">The consumer configuration keys</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../../org/apache/kafka/clients/consumer/ConsumerRecord.html" title="class in org.apache.kafka.clients.consumer">ConsumerRecord</a><K,V></td> +<td class="colLast"> +<div class="block">A key/value pair to be received from Kafka.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../../org/apache/kafka/clients/consumer/ConsumerRecords.html" title="class in org.apache.kafka.clients.consumer">ConsumerRecords</a><K,V></td> +<td class="colLast"> +<div class="block">A container that holds the list <a href="../../../../../org/apache/kafka/clients/consumer/ConsumerRecord.html" title="class in org.apache.kafka.clients.consumer"><code>ConsumerRecord</code></a> per partition for a + particular topic.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../../org/apache/kafka/clients/consumer/KafkaConsumer.html" title="class in org.apache.kafka.clients.consumer">KafkaConsumer</a><K,V></td> +<td class="colLast"> +<div class="block">A Kafka client that consumes records from a Kafka cluster.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../../org/apache/kafka/clients/consumer/MockConsumer.html" title="class in org.apache.kafka.clients.consumer">MockConsumer</a><K,V></td> +<td class="colLast"> +<div class="block">A mock of the <a href="../../../../../org/apache/kafka/clients/consumer/Consumer.html" title="interface in org.apache.kafka.clients.consumer"><code>Consumer</code></a> interface you can use for testing code that uses Kafka.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../../org/apache/kafka/clients/consumer/OffsetAndMetadata.html" title="class in org.apache.kafka.clients.consumer">OffsetAndMetadata</a></td> +<td class="colLast"> +<div class="block">The Kafka offset commit API allows users to provide additional metadata (in the form of a string) + when an offset is committed.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../../org/apache/kafka/clients/consumer/RangeAssignor.html" title="class in org.apache.kafka.clients.consumer">RangeAssignor</a></td> +<td class="colLast"> +<div class="block">The range assignor works on a per-topic basis.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../../org/apache/kafka/clients/consumer/RoundRobinAssignor.html" title="class in org.apache.kafka.clients.consumer">RoundRobinAssignor</a></td> +<td class="colLast"> +<div class="block">The roundrobin assignor lays out all the available partitions and all the available consumers.</div> +</td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation"> +<caption><span>Enum Summary</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Enum</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../../org/apache/kafka/clients/consumer/OffsetResetStrategy.html" title="enum in org.apache.kafka.clients.consumer">OffsetResetStrategy</a></td> +<td class="colLast"> </td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation"> +<caption><span>Exception Summary</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Exception</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../../org/apache/kafka/clients/consumer/CommitFailedException.html" title="class in org.apache.kafka.clients.consumer">CommitFailedException</a></td> +<td class="colLast"> +<div class="block">This exception is raised when an offset commit with <a href="../../../../../org/apache/kafka/clients/consumer/KafkaConsumer.html#commitSync()"><code>KafkaConsumer.commitSync()</code></a> fails + with an unrecoverable error.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../../org/apache/kafka/clients/consumer/InvalidOffsetException.html" title="class in org.apache.kafka.clients.consumer">InvalidOffsetException</a></td> +<td class="colLast"> +<div class="block">Thrown when the offset for a set of partitions is invalid (either undefined or out of range), + and no reset policy has been configured.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../../org/apache/kafka/clients/consumer/NoOffsetForPartitionException.html" title="class in org.apache.kafka.clients.consumer">NoOffsetForPartitionException</a></td> +<td class="colLast"> +<div class="block">Indicates that there is no stored offset for a partition and no defined offset + reset policy.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../../org/apache/kafka/clients/consumer/OffsetOutOfRangeException.html" title="class in org.apache.kafka.clients.consumer">OffsetOutOfRangeException</a></td> +<td class="colLast"> +<div class="block">No reset policy has been defined, and the offsets for these partitions are either larger or smaller + than the range of offsets the server has for the given partition.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../../org/apache/kafka/clients/consumer/RetriableCommitFailedException.html" title="class in org.apache.kafka.clients.consumer">RetriableCommitFailedException</a></td> +<td class="colLast"> </td> +</tr> +</tbody> +</table> +</li> +</ul> +</div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar_bottom"> +<!-- --> +</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li class="navBarCell1Rev">Package</li> +<li>Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev Package</li> +<li><a href="../../../../../org/apache/kafka/clients/producer/package-summary.html">Next Package</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?org/apache/kafka/clients/consumer/package-summary.html" target="_top">Frames</a></li> +<li><a href="package-summary.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip-navbar_bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html>
http://git-wip-us.apache.org/repos/asf/kafka-site/blob/b91f7909/0100/javadoc/org/apache/kafka/clients/consumer/package-tree.html ---------------------------------------------------------------------- diff --git a/0100/javadoc/org/apache/kafka/clients/consumer/package-tree.html b/0100/javadoc/org/apache/kafka/clients/consumer/package-tree.html new file mode 100644 index 0000000..cb776c4 --- /dev/null +++ b/0100/javadoc/org/apache/kafka/clients/consumer/package-tree.html @@ -0,0 +1,204 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (version 1.7.0_79) on Tue May 17 21:36:38 PDT 2016 --> +<title>org.apache.kafka.clients.consumer Class Hierarchy (clients 0.10.0.0 API)</title> +<meta name="date" content="2016-05-17"> +<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style"> +</head> +<body> +<script type="text/javascript"><!-- + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="org.apache.kafka.clients.consumer Class Hierarchy (clients 0.10.0.0 API)"; + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar_top"> +<!-- --> +</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li>Class</li> +<li class="navBarCell1Rev">Tree</li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev</li> +<li><a href="../../../../../org/apache/kafka/clients/producer/package-tree.html">Next</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?org/apache/kafka/clients/consumer/package-tree.html" target="_top">Frames</a></li> +<li><a href="package-tree.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip-navbar_top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 class="title">Hierarchy For Package org.apache.kafka.clients.consumer</h1> +<span class="strong">Package Hierarchies:</span> +<ul class="horizontal"> +<li><a href="../../../../../overview-tree.html">All Packages</a></li> +</ul> +</div> +<div class="contentContainer"> +<h2 title="Class Hierarchy">Class Hierarchy</h2> +<ul> +<li type="circle">java.lang.Object +<ul> +<li type="circle">org.apache.kafka.common.config.<a href="../../../../../org/apache/kafka/common/config/AbstractConfig.html" title="class in org.apache.kafka.common.config"><span class="strong">AbstractConfig</span></a> +<ul> +<li type="circle">org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/ConsumerConfig.html" title="class in org.apache.kafka.clients.consumer"><span class="strong">ConsumerConfig</span></a></li> +</ul> +</li> +<li type="circle">org.apache.kafka.clients.consumer.internals.AbstractPartitionAssignor (implements org.apache.kafka.clients.consumer.internals.PartitionAssignor) +<ul> +<li type="circle">org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/RangeAssignor.html" title="class in org.apache.kafka.clients.consumer"><span class="strong">RangeAssignor</span></a></li> +<li type="circle">org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/RoundRobinAssignor.html" title="class in org.apache.kafka.clients.consumer"><span class="strong">RoundRobinAssignor</span></a></li> +</ul> +</li> +<li type="circle">org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/ConsumerRecord.html" title="class in org.apache.kafka.clients.consumer"><span class="strong">ConsumerRecord</span></a><K,V></li> +<li type="circle">org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/ConsumerRecords.html" title="class in org.apache.kafka.clients.consumer"><span class="strong">ConsumerRecords</span></a><K,V> (implements java.lang.Iterable<T>)</li> +<li type="circle">org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/KafkaConsumer.html" title="class in org.apache.kafka.clients.consumer"><span class="strong">KafkaConsumer</span></a><K,V> (implements org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/Consumer.html" title="interface in org.apache.kafka.clients.consumer">Consumer</a><K,V>)</li> +<li type="circle">org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/MockConsumer.html" title="class in org.apache.kafka.clients.consumer"><span class="strong">MockConsumer</span></a><K,V> (implements org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/Consumer.html" title="interface in org.apache.kafka.clients.consumer">Consumer</a><K,V>)</li> +<li type="circle">org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/OffsetAndMetadata.html" title="class in org.apache.kafka.clients.consumer"><span class="strong">OffsetAndMetadata</span></a> (implements java.io.Serializable)</li> +<li type="circle">java.lang.Throwable (implements java.io.Serializable) +<ul> +<li type="circle">java.lang.Exception +<ul> +<li type="circle">java.lang.RuntimeException +<ul> +<li type="circle">org.apache.kafka.common.<a href="../../../../../org/apache/kafka/common/KafkaException.html" title="class in org.apache.kafka.common"><span class="strong">KafkaException</span></a> +<ul> +<li type="circle">org.apache.kafka.common.errors.<a href="../../../../../org/apache/kafka/common/errors/ApiException.html" title="class in org.apache.kafka.common.errors"><span class="strong">ApiException</span></a> +<ul> +<li type="circle">org.apache.kafka.common.errors.<a href="../../../../../org/apache/kafka/common/errors/RetriableException.html" title="class in org.apache.kafka.common.errors"><span class="strong">RetriableException</span></a> +<ul> +<li type="circle">org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/RetriableCommitFailedException.html" title="class in org.apache.kafka.clients.consumer"><span class="strong">RetriableCommitFailedException</span></a></li> +</ul> +</li> +</ul> +</li> +<li type="circle">org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/CommitFailedException.html" title="class in org.apache.kafka.clients.consumer"><span class="strong">CommitFailedException</span></a></li> +<li type="circle">org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/InvalidOffsetException.html" title="class in org.apache.kafka.clients.consumer"><span class="strong">InvalidOffsetException</span></a> +<ul> +<li type="circle">org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/NoOffsetForPartitionException.html" title="class in org.apache.kafka.clients.consumer"><span class="strong">NoOffsetForPartitionException</span></a></li> +<li type="circle">org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/OffsetOutOfRangeException.html" title="class in org.apache.kafka.clients.consumer"><span class="strong">OffsetOutOfRangeException</span></a></li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<h2 title="Interface Hierarchy">Interface Hierarchy</h2> +<ul> +<li type="circle">java.lang.AutoCloseable +<ul> +<li type="circle">java.io.Closeable +<ul> +<li type="circle">org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/Consumer.html" title="interface in org.apache.kafka.clients.consumer"><span class="strong">Consumer</span></a><K,V></li> +</ul> +</li> +</ul> +</li> +<li type="circle">org.apache.kafka.common.<a href="../../../../../org/apache/kafka/common/Configurable.html" title="interface in org.apache.kafka.common"><span class="strong">Configurable</span></a> +<ul> +<li type="circle">org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/ConsumerInterceptor.html" title="interface in org.apache.kafka.clients.consumer"><span class="strong">ConsumerInterceptor</span></a><K,V></li> +</ul> +</li> +<li type="circle">org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/ConsumerRebalanceListener.html" title="interface in org.apache.kafka.clients.consumer"><span class="strong">ConsumerRebalanceListener</span></a></li> +<li type="circle">org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/OffsetCommitCallback.html" title="interface in org.apache.kafka.clients.consumer"><span class="strong">OffsetCommitCallback</span></a></li> +</ul> +<h2 title="Enum Hierarchy">Enum Hierarchy</h2> +<ul> +<li type="circle">java.lang.Object +<ul> +<li type="circle">java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable) +<ul> +<li type="circle">org.apache.kafka.clients.consumer.<a href="../../../../../org/apache/kafka/clients/consumer/OffsetResetStrategy.html" title="enum in org.apache.kafka.clients.consumer"><span class="strong">OffsetResetStrategy</span></a></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar_bottom"> +<!-- --> +</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li>Class</li> +<li class="navBarCell1Rev">Tree</li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev</li> +<li><a href="../../../../../org/apache/kafka/clients/producer/package-tree.html">Next</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?org/apache/kafka/clients/consumer/package-tree.html" target="_top">Frames</a></li> +<li><a href="package-tree.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip-navbar_bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> http://git-wip-us.apache.org/repos/asf/kafka-site/blob/b91f7909/0100/javadoc/org/apache/kafka/clients/producer/BufferExhaustedException.html ---------------------------------------------------------------------- diff --git a/0100/javadoc/org/apache/kafka/clients/producer/BufferExhaustedException.html b/0100/javadoc/org/apache/kafka/clients/producer/BufferExhaustedException.html new file mode 100644 index 0000000..30ef3c3 --- /dev/null +++ b/0100/javadoc/org/apache/kafka/clients/producer/BufferExhaustedException.html @@ -0,0 +1,260 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (version 1.7.0_79) on Tue May 17 21:36:38 PDT 2016 --> +<title>BufferExhaustedException (clients 0.10.0.0 API)</title> +<meta name="date" content="2016-05-17"> +<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style"> +</head> +<body> +<script type="text/javascript"><!-- + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BufferExhaustedException (clients 0.10.0.0 API)"; + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar_top"> +<!-- --> +</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev Class</li> +<li><a href="../../../../../org/apache/kafka/clients/producer/Callback.html" title="interface in org.apache.kafka.clients.producer"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?org/apache/kafka/clients/producer/BufferExhaustedException.html" target="_top">Frames</a></li> +<li><a href="BufferExhaustedException.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor_summary">Constr</a> | </li> +<li><a href="#methods_inherited_from_class_java.lang.Throwable">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor_detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip-navbar_top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">org.apache.kafka.clients.producer</div> +<h2 title="Class BufferExhaustedException" class="title">Class BufferExhaustedException</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li>java.lang.Object</li> +<li> +<ul class="inheritance"> +<li>java.lang.Throwable</li> +<li> +<ul class="inheritance"> +<li>java.lang.Exception</li> +<li> +<ul class="inheritance"> +<li>java.lang.RuntimeException</li> +<li> +<ul class="inheritance"> +<li><a href="../../../../../org/apache/kafka/common/KafkaException.html" title="class in org.apache.kafka.common">org.apache.kafka.common.KafkaException</a></li> +<li> +<ul class="inheritance"> +<li>org.apache.kafka.clients.producer.BufferExhaustedException</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd>java.io.Serializable</dd> +</dl> +<hr> +<br> +<pre>public class <span class="strong">BufferExhaustedException</span> +extends <a href="../../../../../org/apache/kafka/common/KafkaException.html" title="class in org.apache.kafka.common">KafkaException</a></pre> +<div class="block">This exception is thrown if the producer is in non-blocking mode and the rate of data production exceeds the rate at + which data can be sent for long enough for the alloted buffer to be exhausted.</div> +<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../serialized-form.html#org.apache.kafka.clients.producer.BufferExhaustedException">Serialized Form</a></dd></dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor_summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><strong><a href="../../../../../org/apache/kafka/clients/producer/BufferExhaustedException.html#BufferExhaustedException(java.lang.String)">BufferExhaustedException</a></strong>(java.lang.String message)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method_summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="methods_inherited_from_class_java.lang.Throwable"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.Throwable</h3> +<code>addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.Object</h3> +<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor_detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="BufferExhaustedException(java.lang.String)"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>BufferExhaustedException</h4> +<pre>public BufferExhaustedException(java.lang.String message)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar_bottom"> +<!-- --> +</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev Class</li> +<li><a href="../../../../../org/apache/kafka/clients/producer/Callback.html" title="interface in org.apache.kafka.clients.producer"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?org/apache/kafka/clients/producer/BufferExhaustedException.html" target="_top">Frames</a></li> +<li><a href="BufferExhaustedException.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor_summary">Constr</a> | </li> +<li><a href="#methods_inherited_from_class_java.lang.Throwable">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor_detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip-navbar_bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> http://git-wip-us.apache.org/repos/asf/kafka-site/blob/b91f7909/0100/javadoc/org/apache/kafka/clients/producer/Callback.html ---------------------------------------------------------------------- diff --git a/0100/javadoc/org/apache/kafka/clients/producer/Callback.html b/0100/javadoc/org/apache/kafka/clients/producer/Callback.html new file mode 100644 index 0000000..ffa5492 --- /dev/null +++ b/0100/javadoc/org/apache/kafka/clients/producer/Callback.html @@ -0,0 +1,234 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (version 1.7.0_79) on Tue May 17 21:36:38 PDT 2016 --> +<title>Callback (clients 0.10.0.0 API)</title> +<meta name="date" content="2016-05-17"> +<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style"> +</head> +<body> +<script type="text/javascript"><!-- + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Callback (clients 0.10.0.0 API)"; + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar_top"> +<!-- --> +</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../../org/apache/kafka/clients/producer/BufferExhaustedException.html" title="class in org.apache.kafka.clients.producer"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="class in org.apache.kafka.clients.producer"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?org/apache/kafka/clients/producer/Callback.html" target="_top">Frames</a></li> +<li><a href="Callback.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method_summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method_detail">Method</a></li> +</ul> +</div> +<a name="skip-navbar_top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">org.apache.kafka.clients.producer</div> +<h2 title="Interface Callback" class="title">Interface Callback</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public interface <span class="strong">Callback</span></pre> +<div class="block">A callback interface that the user can implement to allow code to execute when the request is complete. This callback + will generally execute in the background I/O thread so it should be fast.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method_summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span>Methods</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/kafka/clients/producer/Callback.html#onCompletion(org.apache.kafka.clients.producer.RecordMetadata,%20java.lang.Exception)">onCompletion</a></strong>(<a href="../../../../../org/apache/kafka/clients/producer/RecordMetadata.html" title="class in org.apache.kafka.clients.producer">RecordMetadata</a> metadata, + java.lang.Exception exception)</code> +<div class="block">A callback method the user can implement to provide asynchronous handling of request completion.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method_detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onCompletion(org.apache.kafka.clients.producer.RecordMetadata, java.lang.Exception)"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onCompletion</h4> +<pre>void onCompletion(<a href="../../../../../org/apache/kafka/clients/producer/RecordMetadata.html" title="class in org.apache.kafka.clients.producer">RecordMetadata</a> metadata, + java.lang.Exception exception)</pre> +<div class="block">A callback method the user can implement to provide asynchronous handling of request completion. This method will + be called when the record sent to the server has been acknowledged. Exactly one of the arguments will be + non-null.</div> +<dl><dt><span class="strong">Parameters:</span></dt><dd><code>metadata</code> - The metadata for the record that was sent (i.e. the partition and offset). Null if an error + occurred.</dd><dd><code>exception</code> - The exception thrown during processing of this record. Null if no error occurred. + Possible thrown exceptions include: + + Non-Retriable exceptions (fatal, the message will never be sent): + + InvalidTopicException + OffsetMetadataTooLargeException + RecordBatchTooLargeException + RecordTooLargeException + UnknownServerException + + Retriable exceptions (transient, may be covered by increasing #.retries): + + CorruptRecordException + InvalidMetadataException + NotEnoughReplicasAfterAppendException + NotEnoughReplicasException + OffsetOutOfRangeException + TimeoutException + UnknownTopicOrPartitionException</dd></dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar_bottom"> +<!-- --> +</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../../org/apache/kafka/clients/producer/BufferExhaustedException.html" title="class in org.apache.kafka.clients.producer"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="class in org.apache.kafka.clients.producer"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?org/apache/kafka/clients/producer/Callback.html" target="_top">Frames</a></li> +<li><a href="Callback.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method_summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method_detail">Method</a></li> +</ul> +</div> +<a name="skip-navbar_bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> http://git-wip-us.apache.org/repos/asf/kafka-site/blob/b91f7909/0100/javadoc/org/apache/kafka/clients/producer/KafkaProducer.html ---------------------------------------------------------------------- diff --git a/0100/javadoc/org/apache/kafka/clients/producer/KafkaProducer.html b/0100/javadoc/org/apache/kafka/clients/producer/KafkaProducer.html new file mode 100644 index 0000000..2429b86 --- /dev/null +++ b/0100/javadoc/org/apache/kafka/clients/producer/KafkaProducer.html @@ -0,0 +1,631 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (version 1.7.0_79) on Tue May 17 21:36:38 PDT 2016 --> +<title>KafkaProducer (clients 0.10.0.0 API)</title> +<meta name="date" content="2016-05-17"> +<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style"> +</head> +<body> +<script type="text/javascript"><!-- + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="KafkaProducer (clients 0.10.0.0 API)"; + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar_top"> +<!-- --> +</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../../org/apache/kafka/clients/producer/Callback.html" title="interface in org.apache.kafka.clients.producer"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../../../org/apache/kafka/clients/producer/MockProducer.html" title="class in org.apache.kafka.clients.producer"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?org/apache/kafka/clients/producer/KafkaProducer.html" target="_top">Frames</a></li> +<li><a href="KafkaProducer.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor_summary">Constr</a> | </li> +<li><a href="#method_summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor_detail">Constr</a> | </li> +<li><a href="#method_detail">Method</a></li> +</ul> +</div> +<a name="skip-navbar_top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">org.apache.kafka.clients.producer</div> +<h2 title="Class KafkaProducer" class="title">Class KafkaProducer<K,V></h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li>java.lang.Object</li> +<li> +<ul class="inheritance"> +<li>org.apache.kafka.clients.producer.KafkaProducer<K,V></li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd>java.io.Closeable, java.lang.AutoCloseable, <a href="../../../../../org/apache/kafka/clients/producer/Producer.html" title="interface in org.apache.kafka.clients.producer">Producer</a><K,V></dd> +</dl> +<hr> +<br> +<pre>public class <span class="strong">KafkaProducer<K,V></span> +extends java.lang.Object +implements <a href="../../../../../org/apache/kafka/clients/producer/Producer.html" title="interface in org.apache.kafka.clients.producer">Producer</a><K,V></pre> +<div class="block">A Kafka client that publishes records to the Kafka cluster. + <P> + The producer is <i>thread safe</i> and sharing a single producer instance across threads will generally be faster than + having multiple instances. + <p> + Here is a simple example of using the producer to send records with strings containing sequential numbers as the key/value + pairs. + <pre> + <code>Properties props = new Properties(); + props.put("bootstrap.servers", "localhost:9092"); + props.put("acks", "all"); + props.put("retries", 0); + props.put("batch.size", 16384); + props.put("linger.ms", 1); + props.put("buffer.memory", 33554432); + props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); + props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); + + Producer<String, String> producer = new KafkaProducer<>(props); + for(int i = 0; i < 100; i++) + producer.send(new ProducerRecord<String, String>("my-topic", Integer.toString(i), Integer.toString(i))); + + producer.close(); + </code></pre> + <p> + The producer consists of a pool of buffer space that holds records that haven't yet been transmitted to the server + as well as a background I/O thread that is responsible for turning these records into requests and transmitting them + to the cluster. Failure to close the producer after use will leak these resources. + <p> + The <a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html#send(org.apache.kafka.clients.producer.ProducerRecord)"><code>send()</code></a> method is asynchronous. When called it adds the record to a buffer of pending record sends + and immediately returns. This allows the producer to batch together individual records for efficiency. + <p> + The <code>acks</code> config controls the criteria under which requests are considered complete. The "all" setting + we have specified will result in blocking on the full commit of the record, the slowest but most durable setting. + <p> + If the request fails, the producer can automatically retry, though since we have specified <code>retries</code> + as 0 it won't. Enabling retries also opens up the possibility of duplicates (see the documentation on + <a href="http://kafka.apache.org/documentation.html#semantics">message delivery semantics</a> for details). + <p> + The producer maintains buffers of unsent records for each partition. These buffers are of a size specified by + the <code>batch.size</code> config. Making this larger can result in more batching, but requires more memory (since we will + generally have one of these buffers for each active partition). + <p> + By default a buffer is available to send immediately even if there is additional unused space in the buffer. However if you + want to reduce the number of requests you can set <code>linger.ms</code> to something greater than 0. This will + instruct the producer to wait up to that number of milliseconds before sending a request in hope that more records will + arrive to fill up the same batch. This is analogous to Nagle's algorithm in TCP. For example, in the code snippet above, + likely all 100 records would be sent in a single request since we set our linger time to 1 millisecond. However this setting + would add 1 millisecond of latency to our request waiting for more records to arrive if we didn't fill up the buffer. Note that + records that arrive close together in time will generally batch together even with <code>linger.ms=0</code> so under heavy load + batching will occur regardless of the linger configuration; however setting this to something larger than 0 can lead to fewer, more + efficient requests when not under maximal load at the cost of a small amount of latency. + <p> + The <code>buffer.memory</code> controls the total amount of memory available to the producer for buffering. If records + are sent faster than they can be transmitted to the server then this buffer space will be exhausted. When the buffer space is + exhausted additional send calls will block. For uses where you want to avoid any blocking you can set <code>block.on.buffer.full=false</code> which + will cause the send call to result in an exception. + <p> + The <code>key.serializer</code> and <code>value.serializer</code> instruct how to turn the key and value objects the user provides with + their <code>ProducerRecord</code> into bytes. You can use the included <a href="../../../../../org/apache/kafka/common/serialization/ByteArraySerializer.html" title="class in org.apache.kafka.common.serialization"><code>ByteArraySerializer</code></a> or + <a href="../../../../../org/apache/kafka/common/serialization/StringSerializer.html" title="class in org.apache.kafka.common.serialization"><code>StringSerializer</code></a> for simple string or byte types.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor_summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><strong><a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html#KafkaProducer(java.util.Map)">KafkaProducer</a></strong>(java.util.Map<java.lang.String,java.lang.Object> configs)</code> +<div class="block">A producer is instantiated by providing a set of key-value pairs as configuration.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><strong><a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html#KafkaProducer(java.util.Map,%20org.apache.kafka.common.serialization.Serializer,%20org.apache.kafka.common.serialization.Serializer)">KafkaProducer</a></strong>(java.util.Map<java.lang.String,java.lang.Object> configs, + <a href="../../../../../org/apache/kafka/common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization">Serializer</a><<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">K</a>> keySerializer, + <a href="../../../../../org/apache/kafka/common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization">Serializer</a><<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">V</a>> valueSerializer)</code> +<div class="block">A producer is instantiated by providing a set of key-value pairs as configuration, a key and a value <a href="../../../../../org/apache/kafka/common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization"><code>Serializer</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><strong><a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html#KafkaProducer(java.util.Properties)">KafkaProducer</a></strong>(java.util.Properties properties)</code> +<div class="block">A producer is instantiated by providing a set of key-value pairs as configuration.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><strong><a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html#KafkaProducer(java.util.Properties,%20org.apache.kafka.common.serialization.Serializer,%20org.apache.kafka.common.serialization.Serializer)">KafkaProducer</a></strong>(java.util.Properties properties, + <a href="../../../../../org/apache/kafka/common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization">Serializer</a><<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">K</a>> keySerializer, + <a href="../../../../../org/apache/kafka/common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization">Serializer</a><<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">V</a>> valueSerializer)</code> +<div class="block">A producer is instantiated by providing a set of key-value pairs as configuration, a key and a value <a href="../../../../../org/apache/kafka/common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization"><code>Serializer</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method_summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span>Methods</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html#close()">close</a></strong>()</code> +<div class="block">Close this producer.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html#close(long,%20java.util.concurrent.TimeUnit)">close</a></strong>(long timeout, + java.util.concurrent.TimeUnit timeUnit)</code> +<div class="block">This method waits up to <code>timeout</code> for the producer to complete the sending of all incomplete requests.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html#flush()">flush</a></strong>()</code> +<div class="block">Invoking this method makes all buffered records immediately available to send (even if <code>linger.ms</code> is + greater than 0) and blocks on the completion of the requests associated with these records.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>java.util.Map<<a href="../../../../../org/apache/kafka/common/MetricName.html" title="class in org.apache.kafka.common">MetricName</a>,? extends <a href="../../../../../org/apache/kafka/common/Metric.html" title="interface in org.apache.kafka.common">Metric</a>></code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html#metrics()">metrics</a></strong>()</code> +<div class="block">Get the full set of internal metrics maintained by the producer.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>java.util.List<<a href="../../../../../org/apache/kafka/common/PartitionInfo.html" title="class in org.apache.kafka.common">PartitionInfo</a>></code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html#partitionsFor(java.lang.String)">partitionsFor</a></strong>(java.lang.String topic)</code> +<div class="block">Get the partition metadata for the give topic.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>java.util.concurrent.Future<<a href="../../../../../org/apache/kafka/clients/producer/RecordMetadata.html" title="class in org.apache.kafka.clients.producer">RecordMetadata</a>></code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html#send(org.apache.kafka.clients.producer.ProducerRecord)">send</a></strong>(<a href="../../../../../org/apache/kafka/clients/producer/ProducerRecord.html" title="class in org.apache.kafka.clients.producer">ProducerRecord</a><<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">K</a>,<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">V</a>> record)</code> +<div class="block">Asynchronously send a record to a topic.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>java.util.concurrent.Future<<a href="../../../../../org/apache/kafka/clients/producer/RecordMetadata.html" title="class in org.apache.kafka.clients.producer">RecordMetadata</a>></code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html#send(org.apache.kafka.clients.producer.ProducerRecord,%20org.apache.kafka.clients.producer.Callback)">send</a></strong>(<a href="../../../../../org/apache/kafka/clients/producer/ProducerRecord.html" title="class in org.apache.kafka.clients.producer">ProducerRecord</a><<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">K</a>,<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">V</a>> record, + <a href="../../../../../org/apache/kafka/clients/producer/Callback.html" title="interface in org.apache.kafka.clients.producer">Callback</a> callback)</code> +<div class="block">Asynchronously send a record to a topic and invoke the provided callback when the send has been acknowledged.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.Object</h3> +<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor_detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="KafkaProducer(java.util.Map)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>KafkaProducer</h4> +<pre>public KafkaProducer(java.util.Map<java.lang.String,java.lang.Object> configs)</pre> +<div class="block">A producer is instantiated by providing a set of key-value pairs as configuration. Valid configuration strings + are documented <a href="http://kafka.apache.org/documentation.html#producerconfigs">here</a>. Values can be + either strings or Objects of the appropriate type (for example a numeric configuration would accept either the + string "42" or the integer 42).</div> +<dl><dt><span class="strong">Parameters:</span></dt><dd><code>configs</code> - The producer configs</dd></dl> +</li> +</ul> +<a name="KafkaProducer(java.util.Map, org.apache.kafka.common.serialization.Serializer, org.apache.kafka.common.serialization.Serializer)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>KafkaProducer</h4> +<pre>public KafkaProducer(java.util.Map<java.lang.String,java.lang.Object> configs, + <a href="../../../../../org/apache/kafka/common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization">Serializer</a><<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">K</a>> keySerializer, + <a href="../../../../../org/apache/kafka/common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization">Serializer</a><<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">V</a>> valueSerializer)</pre> +<div class="block">A producer is instantiated by providing a set of key-value pairs as configuration, a key and a value <a href="../../../../../org/apache/kafka/common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization"><code>Serializer</code></a>. + Valid configuration strings are documented <a href="http://kafka.apache.org/documentation.html#producerconfigs">here</a>. + Values can be either strings or Objects of the appropriate type (for example a numeric configuration would accept + either the string "42" or the integer 42).</div> +<dl><dt><span class="strong">Parameters:</span></dt><dd><code>configs</code> - The producer configs</dd><dd><code>keySerializer</code> - The serializer for key that implements <a href="../../../../../org/apache/kafka/common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization"><code>Serializer</code></a>. The configure() method won't be + called in the producer when the serializer is passed in directly.</dd><dd><code>valueSerializer</code> - The serializer for value that implements <a href="../../../../../org/apache/kafka/common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization"><code>Serializer</code></a>. The configure() method won't + be called in the producer when the serializer is passed in directly.</dd></dl> +</li> +</ul> +<a name="KafkaProducer(java.util.Properties)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>KafkaProducer</h4> +<pre>public KafkaProducer(java.util.Properties properties)</pre> +<div class="block">A producer is instantiated by providing a set of key-value pairs as configuration. Valid configuration strings + are documented <a href="http://kafka.apache.org/documentation.html#producerconfigs">here</a>.</div> +<dl><dt><span class="strong">Parameters:</span></dt><dd><code>properties</code> - The producer configs</dd></dl> +</li> +</ul> +<a name="KafkaProducer(java.util.Properties, org.apache.kafka.common.serialization.Serializer, org.apache.kafka.common.serialization.Serializer)"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>KafkaProducer</h4> +<pre>public KafkaProducer(java.util.Properties properties, + <a href="../../../../../org/apache/kafka/common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization">Serializer</a><<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">K</a>> keySerializer, + <a href="../../../../../org/apache/kafka/common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization">Serializer</a><<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">V</a>> valueSerializer)</pre> +<div class="block">A producer is instantiated by providing a set of key-value pairs as configuration, a key and a value <a href="../../../../../org/apache/kafka/common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization"><code>Serializer</code></a>. + Valid configuration strings are documented <a href="http://kafka.apache.org/documentation.html#producerconfigs">here</a>.</div> +<dl><dt><span class="strong">Parameters:</span></dt><dd><code>properties</code> - The producer configs</dd><dd><code>keySerializer</code> - The serializer for key that implements <a href="../../../../../org/apache/kafka/common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization"><code>Serializer</code></a>. The configure() method won't be + called in the producer when the serializer is passed in directly.</dd><dd><code>valueSerializer</code> - The serializer for value that implements <a href="../../../../../org/apache/kafka/common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization"><code>Serializer</code></a>. The configure() method won't + be called in the producer when the serializer is passed in directly.</dd></dl> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method_detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="send(org.apache.kafka.clients.producer.ProducerRecord)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>send</h4> +<pre>public java.util.concurrent.Future<<a href="../../../../../org/apache/kafka/clients/producer/RecordMetadata.html" title="class in org.apache.kafka.clients.producer">RecordMetadata</a>> send(<a href="../../../../../org/apache/kafka/clients/producer/ProducerRecord.html" title="class in org.apache.kafka.clients.producer">ProducerRecord</a><<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">K</a>,<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">V</a>> record)</pre> +<div class="block">Asynchronously send a record to a topic. Equivalent to <code>send(record, null)</code>. + See <a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html#send(org.apache.kafka.clients.producer.ProducerRecord,%20org.apache.kafka.clients.producer.Callback)"><code>send(ProducerRecord, Callback)</code></a> for details.</div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/kafka/clients/producer/Producer.html#send(org.apache.kafka.clients.producer.ProducerRecord)">send</a></code> in interface <code><a href="../../../../../org/apache/kafka/clients/producer/Producer.html" title="interface in org.apache.kafka.clients.producer">Producer</a><<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">K</a>,<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">V</a>></code></dd> +<dt><span class="strong">Parameters:</span></dt><dd><code>record</code> - The record to send</dd> +<dt><span class="strong">Returns:</span></dt><dd>A future which will eventually contain the response information</dd></dl> +</li> +</ul> +<a name="send(org.apache.kafka.clients.producer.ProducerRecord, org.apache.kafka.clients.producer.Callback)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>send</h4> +<pre>public java.util.concurrent.Future<<a href="../../../../../org/apache/kafka/clients/producer/RecordMetadata.html" title="class in org.apache.kafka.clients.producer">RecordMetadata</a>> send(<a href="../../../../../org/apache/kafka/clients/producer/ProducerRecord.html" title="class in org.apache.kafka.clients.producer">ProducerRecord</a><<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">K</a>,<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">V</a>> record, + <a href="../../../../../org/apache/kafka/clients/producer/Callback.html" title="interface in org.apache.kafka.clients.producer">Callback</a> callback)</pre> +<div class="block">Asynchronously send a record to a topic and invoke the provided callback when the send has been acknowledged. + <p> + The send is asynchronous and this method will return immediately once the record has been stored in the buffer of + records waiting to be sent. This allows sending many records in parallel without blocking to wait for the + response after each one. + <p> + The result of the send is a <a href="../../../../../org/apache/kafka/clients/producer/RecordMetadata.html" title="class in org.apache.kafka.clients.producer"><code>RecordMetadata</code></a> specifying the partition the record was sent to, the offset + it was assigned and the timestamp of the record. If + <code>CreateTime</code> is used by the topic, the timestamp + will be the user provided timestamp or the record send time if the user did not specify a timestamp for the + record. If <code>LogAppendTime</code> is used for the + topic, the timestamp will be the Kafka broker local time when the message is appended. + <p> + Since the send call is asynchronous it returns a <code>Future</code> for the + <a href="../../../../../org/apache/kafka/clients/producer/RecordMetadata.html" title="class in org.apache.kafka.clients.producer"><code>RecordMetadata</code></a> that will be assigned to this record. Invoking <code>get()</code> on this future will block until the associated request completes and then return the metadata for the record + or throw any exception that occurred while sending the record. + <p> + If you want to simulate a simple blocking call you can call the <code>get()</code> method immediately: + + <pre> + <code>byte[] key = "key".getBytes(); + byte[] value = "value".getBytes(); + ProducerRecord<byte[],byte[]> record = new ProducerRecord<byte[],byte[]>("my-topic", key, value) + producer.send(record).get(); + </code></pre> + <p> + Fully non-blocking usage can make use of the <a href="../../../../../org/apache/kafka/clients/producer/Callback.html" title="interface in org.apache.kafka.clients.producer"><code>Callback</code></a> parameter to provide a callback that + will be invoked when the request is complete. + + <pre> + <code>ProducerRecord<byte[],byte[]> record = new ProducerRecord<byte[],byte[]>("the-topic", key, value); + producer.send(myRecord, + new Callback() { + public void onCompletion(RecordMetadata metadata, Exception e) { + if(e != null) + e.printStackTrace(); + System.out.println("The offset of the record we just sent is: " + metadata.offset()); + } + }); + </code> + </pre> + + Callbacks for records being sent to the same partition are guaranteed to execute in order. That is, in the + following example <code>callback1</code> is guaranteed to execute before <code>callback2</code>: + + <pre> + <code>producer.send(new ProducerRecord<byte[],byte[]>(topic, partition, key1, value1), callback1); + producer.send(new ProducerRecord<byte[],byte[]>(topic, partition, key2, value2), callback2); + </code> + </pre> + <p> + Note that callbacks will generally execute in the I/O thread of the producer and so should be reasonably fast or + they will delay the sending of messages from other threads. If you want to execute blocking or computationally + expensive callbacks it is recommended to use your own <code>Executor</code> in the callback body + to parallelize processing.</div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/kafka/clients/producer/Producer.html#send(org.apache.kafka.clients.producer.ProducerRecord,%20org.apache.kafka.clients.producer.Callback)">send</a></code> in interface <code><a href="../../../../../org/apache/kafka/clients/producer/Producer.html" title="interface in org.apache.kafka.clients.producer">Producer</a><<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">K</a>,<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">V</a>></code></dd> +<dt><span class="strong">Parameters:</span></dt><dd><code>record</code> - The record to send</dd><dd><code>callback</code> - A user-supplied callback to execute when the record has been acknowledged by the server (null + indicates no callback)</dd> +<dt><span class="strong">Throws:</span></dt> +<dd><code><a href="../../../../../org/apache/kafka/common/errors/InterruptException.html" title="class in org.apache.kafka.common.errors">InterruptException</a></code> - If the thread is interrupted while blocked</dd> +<dd><code><a href="../../../../../org/apache/kafka/common/errors/SerializationException.html" title="class in org.apache.kafka.common.errors">SerializationException</a></code> - If the key or value are not valid objects given the configured serializers</dd> +<dd><code><a href="../../../../../org/apache/kafka/clients/producer/BufferExhaustedException.html" title="class in org.apache.kafka.clients.producer">BufferExhaustedException</a></code> - If <code>block.on.buffer.full=false</code> and the buffer is full.</dd></dl> +</li> +</ul> +<a name="flush()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>flush</h4> +<pre>public void flush()</pre> +<div class="block">Invoking this method makes all buffered records immediately available to send (even if <code>linger.ms</code> is + greater than 0) and blocks on the completion of the requests associated with these records. The post-condition + of <code>flush()</code> is that any previously sent record will have completed (e.g. <code>Future.isDone() == true</code>). + A request is considered completed when it is successfully acknowledged + according to the <code>acks</code> configuration you have specified or else it results in an error. + <p> + Other threads can continue sending records while one thread is blocked waiting for a flush call to complete, + however no guarantee is made about the completion of records sent after the flush call begins. + <p> + This method can be useful when consuming from some input system and producing into Kafka. The <code>flush()</code> call + gives a convenient way to ensure all previously sent messages have actually completed. + <p> + This example shows how to consume from one Kafka topic and produce to another Kafka topic: + <pre> + <code>for(ConsumerRecord<String, String> record: consumer.poll(100)) + producer.send(new ProducerRecord("my-topic", record.key(), record.value()); + producer.flush(); + consumer.commit(); + </code> + </pre> + + Note that the above example may drop records if the produce request fails. If we want to ensure that this does not occur + we need to set <code>retries=<large_number></code> in our config.</div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/kafka/clients/producer/Producer.html#flush()">flush</a></code> in interface <code><a href="../../../../../org/apache/kafka/clients/producer/Producer.html" title="interface in org.apache.kafka.clients.producer">Producer</a><<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">K</a>,<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">V</a>></code></dd> +<dt><span class="strong">Throws:</span></dt> +<dd><code><a href="../../../../../org/apache/kafka/common/errors/InterruptException.html" title="class in org.apache.kafka.common.errors">InterruptException</a></code> - If the thread is interrupted while blocked</dd></dl> +</li> +</ul> +<a name="partitionsFor(java.lang.String)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>partitionsFor</h4> +<pre>public java.util.List<<a href="../../../../../org/apache/kafka/common/PartitionInfo.html" title="class in org.apache.kafka.common">PartitionInfo</a>> partitionsFor(java.lang.String topic)</pre> +<div class="block">Get the partition metadata for the give topic. This can be used for custom partitioning.</div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/kafka/clients/producer/Producer.html#partitionsFor(java.lang.String)">partitionsFor</a></code> in interface <code><a href="../../../../../org/apache/kafka/clients/producer/Producer.html" title="interface in org.apache.kafka.clients.producer">Producer</a><<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">K</a>,<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">V</a>></code></dd> +<dt><span class="strong">Throws:</span></dt> +<dd><code><a href="../../../../../org/apache/kafka/common/errors/InterruptException.html" title="class in org.apache.kafka.common.errors">InterruptException</a></code> - If the thread is interrupted while blocked</dd></dl> +</li> +</ul> +<a name="metrics()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>metrics</h4> +<pre>public java.util.Map<<a href="../../../../../org/apache/kafka/common/MetricName.html" title="class in org.apache.kafka.common">MetricName</a>,? extends <a href="../../../../../org/apache/kafka/common/Metric.html" title="interface in org.apache.kafka.common">Metric</a>> metrics()</pre> +<div class="block">Get the full set of internal metrics maintained by the producer.</div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/kafka/clients/producer/Producer.html#metrics()">metrics</a></code> in interface <code><a href="../../../../../org/apache/kafka/clients/producer/Producer.html" title="interface in org.apache.kafka.clients.producer">Producer</a><<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">K</a>,<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">V</a>></code></dd> +</dl> +</li> +</ul> +<a name="close()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>close</h4> +<pre>public void close()</pre> +<div class="block">Close this producer. This method blocks until all previously sent requests complete. + This method is equivalent to <code>close(Long.MAX_VALUE, TimeUnit.MILLISECONDS)</code>. + <p> + <strong>If close() is called from <a href="../../../../../org/apache/kafka/clients/producer/Callback.html" title="interface in org.apache.kafka.clients.producer"><code>Callback</code></a>, a warning message will be logged and close(0, TimeUnit.MILLISECONDS) + will be called instead. We do this because the sender thread would otherwise try to join itself and + block forever.</strong> + <p></div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code>close</code> in interface <code>java.io.Closeable</code></dd> +<dt><strong>Specified by:</strong></dt> +<dd><code>close</code> in interface <code>java.lang.AutoCloseable</code></dd> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/kafka/clients/producer/Producer.html#close()">close</a></code> in interface <code><a href="../../../../../org/apache/kafka/clients/producer/Producer.html" title="interface in org.apache.kafka.clients.producer">Producer</a><<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">K</a>,<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">V</a>></code></dd> +<dt><span class="strong">Throws:</span></dt> +<dd><code><a href="../../../../../org/apache/kafka/common/errors/InterruptException.html" title="class in org.apache.kafka.common.errors">InterruptException</a></code> - If the thread is interrupted while blocked</dd></dl> +</li> +</ul> +<a name="close(long, java.util.concurrent.TimeUnit)"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>close</h4> +<pre>public void close(long timeout, + java.util.concurrent.TimeUnit timeUnit)</pre> +<div class="block">This method waits up to <code>timeout</code> for the producer to complete the sending of all incomplete requests. + <p> + If the producer is unable to complete all requests before the timeout expires, this method will fail + any unsent and unacknowledged records immediately. + <p> + If invoked from within a <a href="../../../../../org/apache/kafka/clients/producer/Callback.html" title="interface in org.apache.kafka.clients.producer"><code>Callback</code></a> this method will not block and will be equivalent to + <code>close(0, TimeUnit.MILLISECONDS)</code>. This is done since no further sending will happen while + blocking the I/O thread of the producer.</div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/kafka/clients/producer/Producer.html#close(long,%20java.util.concurrent.TimeUnit)">close</a></code> in interface <code><a href="../../../../../org/apache/kafka/clients/producer/Producer.html" title="interface in org.apache.kafka.clients.producer">Producer</a><<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">K</a>,<a href="../../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="type parameter in KafkaProducer">V</a>></code></dd> +<dt><span class="strong">Parameters:</span></dt><dd><code>timeout</code> - The maximum time to wait for producer to complete any pending requests. The value should be + non-negative. Specifying a timeout of zero means do not wait for pending send requests to complete.</dd><dd><code>timeUnit</code> - The time unit for the <code>timeout</code></dd> +<dt><span class="strong">Throws:</span></dt> +<dd><code><a href="../../../../../org/apache/kafka/common/errors/InterruptException.html" title="class in org.apache.kafka.common.errors">InterruptException</a></code> - If the thread is interrupted while blocked</dd> +<dd><code>java.lang.IllegalArgumentException</code> - If the <code>timeout</code> is negative.</dd></dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar_bottom"> +<!-- --> +</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../../org/apache/kafka/clients/producer/Callback.html" title="interface in org.apache.kafka.clients.producer"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../../../org/apache/kafka/clients/producer/MockProducer.html" title="class in org.apache.kafka.clients.producer"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?org/apache/kafka/clients/producer/KafkaProducer.html" target="_top">Frames</a></li> +<li><a href="KafkaProducer.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor_summary">Constr</a> | </li> +<li><a href="#method_summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor_detail">Constr</a> | </li> +<li><a href="#method_detail">Method</a></li> +</ul> +</div> +<a name="skip-navbar_bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html>
