This is an automated email from the ASF dual-hosted git repository.
mjsax pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/kafka-site.git
The following commit(s) were added to refs/heads/asf-site by this push:
new bc87993 Update docs for 1.0.2 release (#149)
bc87993 is described below
commit bc87993f589472f0967aff629fc7ede35374f696
Author: Matthias J. Sax <[email protected]>
AuthorDate: Sun Jul 15 20:57:30 2018 -0700
Update docs for 1.0.2 release (#149)
---
10/generated/producer_config.html | 2 +-
10/generated/protocol_errors.html | 2 +-
10/generated/streams_config.html | 2 +
10/js/templateData.js | 2 +-
10/protocol.html | 9 +-
10/streams/core-concepts.html | 8 +-
10/streams/developer-guide/config-streams.html | 46 ++++++-
10/streams/developer-guide/dsl-api.html | 11 +-
10/streams/developer-guide/processor-api.html | 4 +-
10/streams/index.html | 29 +----
10/streams/upgrade-guide.html | 46 ++++---
10/upgrade.html | 162 ++++++++++++++++++++++++-
downloads.html | 156 +++++++++++++-----------
13 files changed, 351 insertions(+), 128 deletions(-)
diff --git a/10/generated/producer_config.html
b/10/generated/producer_config.html
index 4545b0d..3ff65e4 100644
--- a/10/generated/producer_config.html
+++ b/10/generated/producer_config.html
@@ -110,7 +110,7 @@
<tr>
<td>ssl.trustmanager.algorithm</td><td>The algorithm used by trust manager
factory for SSL connections. Default value is the trust manager factory
algorithm configured for the Java Virtual
Machine.</td><td>string</td><td>PKIX</td><td></td><td>low</td></tr>
<tr>
-<td>transaction.timeout.ms</td><td>The maximum amount of time in ms that the
transaction coordinator will wait for a transaction status update from the
producer before proactively aborting the ongoing transaction.If this value is
larger than the max.transaction.timeout.ms setting in the broker, the request
will fail with a `InvalidTransactionTimeout`
error.</td><td>int</td><td>60000</td><td></td><td>low</td></tr>
+<td>transaction.timeout.ms</td><td>The maximum amount of time in ms that the
transaction coordinator will wait for a transaction status update from the
producer before proactively aborting the ongoing transaction.If this value is
larger than the transaction.max.timeout.ms setting in the broker, the request
will fail with a `InvalidTransactionTimeout`
error.</td><td>int</td><td>60000</td><td></td><td>low</td></tr>
<tr>
<td>transactional.id</td><td>The TransactionalId to use for transactional
delivery. This enables reliability semantics which span multiple producer
sessions since it allows the client to guarantee that transactions using the
same TransactionalId have been completed prior to starting any new
transactions. If no TransactionalId is provided, then the producer is limited
to idempotent delivery. Note that enable.idempotence must be enabled if a
TransactionalId is configured. The default is <c [...]
</tbody></table>
diff --git a/10/generated/protocol_errors.html
b/10/generated/protocol_errors.html
index 99d68b0..de38465 100644
--- a/10/generated/protocol_errors.html
+++ b/10/generated/protocol_errors.html
@@ -55,7 +55,7 @@
<tr><td>INVALID_PRODUCER_EPOCH</td><td>47</td><td>False</td><td>Producer
attempted an operation with an old epoch. Either there is a newer producer with
the same transactionalId, or the producer's transaction has been expired by the
broker.</td></tr>
<tr><td>INVALID_TXN_STATE</td><td>48</td><td>False</td><td>The producer
attempted a transactional operation in an invalid state</td></tr>
<tr><td>INVALID_PRODUCER_ID_MAPPING</td><td>49</td><td>False</td><td>The
producer attempted to use a producer id which is not currently assigned to its
transactional id</td></tr>
-<tr><td>INVALID_TRANSACTION_TIMEOUT</td><td>50</td><td>False</td><td>The
transaction timeout is larger than the maximum value allowed by the broker (as
configured by max.transaction.timeout.ms).</td></tr>
+<tr><td>INVALID_TRANSACTION_TIMEOUT</td><td>50</td><td>False</td><td>The
transaction timeout is larger than the maximum value allowed by the broker (as
configured by transaction.max.timeout.ms).</td></tr>
<tr><td>CONCURRENT_TRANSACTIONS</td><td>51</td><td>False</td><td>The producer
attempted to update a transaction while another concurrent operation on the
same transaction was ongoing</td></tr>
<tr><td>TRANSACTION_COORDINATOR_FENCED</td><td>52</td><td>False</td><td>Indicates
that the transaction coordinator sending a WriteTxnMarker is no longer the
current coordinator for a given producer</td></tr>
<tr><td>TRANSACTIONAL_ID_AUTHORIZATION_FAILED</td><td>53</td><td>False</td><td>Transactional
Id authorization failed</td></tr>
diff --git a/10/generated/streams_config.html b/10/generated/streams_config.html
index 93a5c04..10d99c1 100644
--- a/10/generated/streams_config.html
+++ b/10/generated/streams_config.html
@@ -78,6 +78,8 @@
<tr>
<td>timestamp.extractor</td><td>Timestamp extractor class that implements the
<code>org.apache.kafka.streams.processor.TimestampExtractor</code> interface.
This config is deprecated, use <code>default.timestamp.extractor</code>
instead</td><td>class</td><td>null</td><td></td><td>low</td></tr>
<tr>
+<td>upgrade.from</td><td>Allows upgrading from version 0.10.0 to version
0.10.1 (or newer) in a backward compatible way. Default is null. Accepted
values are "0.10.0" (for upgrading from
0.10.0.x).</td><td>string</td><td>null</td><td>[null,
0.10.0]</td><td>low</td></tr>
+<tr>
<td>value.serde</td><td>Serializer / deserializer class for value that
implements the <code>org.apache.kafka.common.serialization.Serde</code>
interface. This config is deprecated, use <code>default.value.serde</code>
instead</td><td>class</td><td>null</td><td></td><td>low</td></tr>
<tr>
<td>windowstore.changelog.additional.retention.ms</td><td>Added to a windows
maintainMs to ensure data is not deleted from the log prematurely. Allows for
clock drift. Default is 1
day</td><td>long</td><td>86400000</td><td></td><td>low</td></tr>
diff --git a/10/js/templateData.js b/10/js/templateData.js
index 2238b08..655f127 100644
--- a/10/js/templateData.js
+++ b/10/js/templateData.js
@@ -19,6 +19,6 @@ limitations under the License.
var context={
"version": "10",
"dotVersion": "1.0",
- "fullDotVersion": "1.0.1",
+ "fullDotVersion": "1.0.2",
"scalaVersion": "2.11"
};
diff --git a/10/protocol.html b/10/protocol.html
index 4042223..6e45b5e 100644
--- a/10/protocol.html
+++ b/10/protocol.html
@@ -148,10 +148,11 @@
<li>Kafka <code>ApiVersionsRequest</code> may be sent by the client to
obtain the version ranges of requests supported by the broker. This is
optional.</li>
<li>Kafka <code>SaslHandshakeRequest</code> containing the SASL mechanism
for authentication is sent by the client. If the requested mechanism is not
enabled
in the server, the server responds with the list of supported mechanisms
and closes the client connection. If the mechanism is enabled
- in the server, the server sends a successful response and continues with
SASL authentication.
- <li>The actual SASL authentication is now performed. A series of SASL client
and server tokens corresponding to the mechanism are sent as opaque
- packets. These packets contain a 32-bit size followed by the token as
defined by the protocol for the SASL mechanism.
- <li>If authentication succeeds, subsequent packets are handled as Kafka API
requests. Otherwise, the client connection is closed.
+ in the server, the server sends a successful response and continues with
SASL authentication.</li>
+ <li>The actual SASL authentication is now performed. If
<code>SaslHandshakeRequest</code> version is v0, a series of SASL client and
server tokens corresponding to the mechanism are sent
+ as opaque packets without wrapping the messages with Kafka protocol
headers. If <code>SaslHandshakeRequest</code> version is v1, the
<code>SaslAuthenticate</code>
+ request/response are used, where the actual SASL tokens are wrapped in
the Kafka protocol. The error code in the final message from the broker will
indicate if authentication succeeded or failed.</li>
+ <li>If authentication succeeds, subsequent packets are handled as Kafka API
requests. Otherwise, the client connection is closed.</li>
</ol>
<p>For interoperability with 0.9.0.x clients, the first packet received by the
server is handled as a SASL/GSSAPI client token if it is not a valid
Kafka request. SASL/GSSAPI authentication is performed starting with this
packet, skipping the first two steps above.</p>
diff --git a/10/streams/core-concepts.html b/10/streams/core-concepts.html
index 1e48805..f2f32ad 100644
--- a/10/streams/core-concepts.html
+++ b/10/streams/core-concepts.html
@@ -63,7 +63,7 @@
<ul>
<li>A <b>stream</b> is the most important abstraction provided by
Kafka Streams: it represents an unbounded, continuously updating data set. A
stream is an ordered, replayable, and fault-tolerant sequence of immutable data
records, where a <b>data record</b> is defined as a key-value pair.</li>
<li>A <b>stream processing application</b> is any program that makes
use of the Kafka Streams library. It defines its computational logic through
one or more <b>processor topologies</b>, where a processor topology is a graph
of stream processors (nodes) that are connected by streams (edges).</li>
- <li>A <b><a id="#streams_processor_node"
href="#streams_processor_node">stream processor</a></b> is a node in the
processor topology; it represents a processing step to transform data in
streams by receiving one input record at a time from its upstream processors in
the topology, applying its operation to it, and may subsequently produce one or
more output records to its downstream processors. </li>
+ <li>A <b><a href="#streams_processor_node">stream processor</a></b> is
a node in the processor topology; it represents a processing step to transform
data in streams by receiving one input record at a time from its upstream
processors in the topology, applying its operation to it, and may subsequently
produce one or more output records to its downstream processors. </li>
</ul>
There are two special processors in the topology:
@@ -78,14 +78,14 @@
<img class="centered"
src="/{{version}}/images/streams-architecture-topology.jpg" style="width:400px">
<p>
- Kafka Streams offers two ways to define the stream processing
topology: the <a
href="/{{version}}/documentation/streams/developer-guide/dsl-api.html"><b>Kafka
Streams DSL</b></a> provides
- the most common data transformation operations such as
<code>map</code>, <code>filter</code>, <code>join</code> and
<code>aggregations</code> out of the box; the lower-level <a
href="/{{version}}/documentation/streams/developer-guide/processor-api.html"><b>Processor
API</b></a> allows
+ Kafka Streams offers two ways to define the stream processing
topology: the <a
href="/{{version}}/documentation/streams/developer-guide#streams_dsl"><b>Kafka
Streams DSL</b></a> provides
+ the most common data transformation operations such as
<code>map</code>, <code>filter</code>, <code>join</code> and
<code>aggregations</code> out of the box; the lower-level <a
href="/{{version}}/documentation/streams/developer-guide#streams_processor"><b>Processor
API</b></a> allows
developers define and connect custom processors as well as to interact
with <a href="#streams_state">state stores</a>.
</p>
<p>
A processor topology is merely a logical abstraction for your stream
processing code.
- At runtime, the logical topology is instantiated and replicated inside
the application for parallel processing (see <a
href="/{{version}}/documentation/streams/architecture#streams_architecture_tasks"><b>Stream
Partitions and Tasks</b></a> for details).
+ At runtime, the logical topology is instantiated and replicated inside
the application for parallel processing (see <a
href="#streams_architecture_tasks"><b>Stream Partitions and Tasks</b></a> for
details).
</p>
<h3><a id="streams_time" href="#streams_time">Time</a></h3>
diff --git a/10/streams/developer-guide/config-streams.html
b/10/streams/developer-guide/config-streams.html
index fd0cbca..7b029a7 100644
--- a/10/streams/developer-guide/config-streams.html
+++ b/10/streams/developer-guide/config-streams.html
@@ -75,6 +75,7 @@
<li><a class="reference internal" href="#num-standby-replicas"
id="id10">num.standby.replicas</a></li>
<li><a class="reference internal" href="#num-stream-threads"
id="id11">num.stream.threads</a></li>
<li><a class="reference internal" href="#partition-grouper"
id="id12">partition.grouper</a></li>
+ <li><a class="reference internal" href="#processing-guarantee"
id="id25">processing.guarantee</a></li>
<li><a class="reference internal" href="#replication-factor"
id="id13">replication.factor</a></li>
<li><a class="reference internal" href="#state-dir"
id="id14">state.dir</a></li>
<li><a class="reference internal" href="#timestamp-extractor"
id="id15">timestamp.extractor</a></li>
@@ -98,6 +99,13 @@
<h3><a class="toc-backref" href="#id3">Required configuration
parameters</a><a class="headerlink" href="#required-configuration-parameters"
title="Permalink to this headline"></a></h3>
<p>Here are the required Streams configuration parameters.</p>
<table border="1" class="non-scrolling-table docutils">
+ <colgroup>
+ <col width="20%" />
+ <col width="5%" />
+ <col width="7%" />
+ <col width="38%" />
+ <col width="31%" />
+ </colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Parameter Name</th>
<th class="head">Importance</th>
@@ -162,6 +170,13 @@
</ul>
</div></blockquote>
<table border="1" class="non-scrolling-table docutils">
+ <colgroup>
+ <col width="20%" />
+ <col width="5%" />
+ <col width="7%" />
+ <col width="38%" />
+ <col width="31%" />
+ </colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Parameter Name</th>
<th class="head">Importance</th>
@@ -201,7 +216,7 @@
<tr
class="row-odd"><td>default.deserialization.exception.handler</td>
<td>Medium</td>
<td colspan="2">Exception handling class that implements the <code
class="docutils literal"><span
class="pre">DeserializationExceptionHandler</span></code> interface.</td>
- <td><code class="docutils literal"><span
class="pre">LogAndContinueExceptionHandler</span></code></td>
+ <td>30000 milliseconds</td>
</tr>
<tr class="row-even"><td>default.production.exception.handler</td>
<td>Medium</td>
@@ -248,6 +263,11 @@
<td colspan="2">Partition grouper class that implements the <code
class="docutils literal"><span class="pre">PartitionGrouper</span></code>
interface.</td>
<td>See <a class="reference internal"
href="#streams-developer-guide-partition-grouper"><span class="std
std-ref">Partition Grouper</span></a></td>
</tr>
+ <tr class="row-even"><td>processing.guarantee</td>
+ <td>Low</td>
+ <td colspan="2">The processing mode. Can be either <code
class="docutils literal"><span class="pre">"at_least_once"</span></code>
(default) or <code class="docutils literal"><span
class="pre">"exactly_once"</span></code>.
+ <td>See <a class="reference internal"
href="#streams-developer-guide-processing-guarantedd"><span class="std
std-ref">Processing Guarantee</span></a></td>
+ </tr>
<tr class="row-odd"><td>poll.ms</td>
<td>Low</td>
<td colspan="2">The amount of time in milliseconds to block
waiting for input.</td>
@@ -389,6 +409,19 @@
It assigns each task with one partition for each of the source
topic partitions. The generated number of tasks equals the largest
number of partitions among the input topics. Usually an
application does not need to customize the partition grouper.</div></blockquote>
</div>
+ <div class="section" id="processing-guarantee">
+ <span
id="streams-developer-guide-processing-guarantee"></span><h4><a
class="toc-backref" href="#id25">processing.guarantee</a><a class="headerlink"
href="#processing-guarantee" title="Permalink to this headline"></a></h4>
+ <blockquote>
+ <div>The processing guarantee that should be used. Possible values
are <code class="docutils literal"><span
class="pre">"at_least_once"</span></code> (default) and <code class="docutils
literal"><span class="pre">"exactly_once"</span></code>.
+ Note that if exactly-once processing is enabled, the default
for parameter <code class="docutils literal"><span
class="pre">commit.interval.ms</span></code> changes to 100ms.
+ Additionally, consumers are configured with <code
class="docutils literal"><span
class="pre">isolation.level="read_committed"</span></code>
+ and producers are configured with <code class="docutils
literal"><span class="pre">retries=Integer.MAX_VALUE</span></code>, <code
class="docutils literal"><span
class="pre">enable.idempotence=true</span></code>,
+ and <code class="docutils literal"><span
class="pre">max.in.flight.requests.per.connection=1</span></code> per default.
+ Note that by default exactly-once processing requires a
cluster of at least three brokers what is the recommended setting for
production.
+ For development you can change this, by adjusting broker
setting <code class="docutils literal"><span
class="pre">transaction.state.log.replication.factor</span></code> to the
number of broker you want to use.
+ For more details see <a
href="../core-concepts#streams_processing_guarantee">Processing Guarantees</a>.
+ </div></blockquote>
+ </div>
<div class="section" id="replication-factor">
<span id="replication-factor-parm"></span><h4><a class="toc-backref"
href="#id13">replication.factor</a><a class="headerlink"
href="#replication-factor" title="Permalink to this headline"></a></h4>
<blockquote>
@@ -535,6 +568,11 @@
of these configs, see <a class="reference external"
href="http://kafka.apache.org/0100/documentation.html#producerconfigs">Producer
Configs</a>
and <a class="reference external"
href="http://kafka.apache.org/0100/documentation.html#newconsumerconfigs">Consumer
Configs</a>.</p>
<table border="1" class="non-scrolling-table docutils">
+ <colgroup>
+ <col width="50%" />
+ <col width="19%" />
+ <col width="31%" />
+ </colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Parameter Name</th>
<th class="head">Corresponding Client</th>
@@ -624,6 +662,12 @@
<h3><a class="toc-backref" href="#id21">Recommended configuration
parameters for resiliency</a><a class="headerlink"
href="#recommended-configuration-parameters-for-resiliency" title="Permalink to
this headline"></a></h3>
<p>There are several Kafka and Kafka Streams configuration options
that need to be configured explicitly for resiliency in face of broker
failures:</p>
<table border="1" class="non-scrolling-table docutils">
+ <colgroup>
+ <col width="22%" />
+ <col width="19%" />
+ <col width="10%" />
+ <col width="49%" />
+ </colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Parameter Name</th>
<th class="head">Corresponding Client</th>
diff --git a/10/streams/developer-guide/dsl-api.html
b/10/streams/developer-guide/dsl-api.html
index 52135ef..112746b 100644
--- a/10/streams/developer-guide/dsl-api.html
+++ b/10/streams/developer-guide/dsl-api.html
@@ -180,8 +180,7 @@
(when the record value is not <code class="docutils
literal"><span class="pre">null</span></code>) or as DELETE (when the value is
<code class="docutils literal"><span class="pre">null</span></code>) for that
key.
<a class="reference external"
href="../../../javadoc/org/apache/kafka/streams/StreamsBuilder.html#globalTable-java.lang.String(java.lang.String)">(details)</a></p>
<p>In the case of a GlobalKTable, the local
GlobalKTable instance of every application instance will
- be populated with data from only <strong>a
subset</strong> of the partitions of the input topic. Collectively, across
- all application instances, all input topic
partitions are read and processed.</p>
+ be populated with data from <strong>all</strong>
the partitions of the input topic.</p>
<p>You must provide a name for the table (more
precisely, for the internal
<a class="reference internal"
href="../architecture.html#streams-architecture-state"><span class="std
std-ref">state store</span></a> that backs the table). This is required for
supporting <a class="reference internal"
href="interactive-queries.html#streams-developer-guide-interactive-queries"><span
class="std std-ref">interactive queries</span></a> against the table. When a
@@ -1485,6 +1484,14 @@
Depending on the operands, joins are either <a
class="reference internal" href="#streams-developer-guide-dsl-windowing"><span
class="std std-ref">windowed</span></a> joins or
non-windowed joins.</p>
<table border="1" class="docutils">
+ <colgroup>
+ <col width="12%" />
+ <col width="6%" />
+ <col width="7%" />
+ <col width="7%" />
+ <col width="7%" />
+ <col width="61%" />
+ </colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Join operands</th>
<th class="head">Type</th>
diff --git a/10/streams/developer-guide/processor-api.html
b/10/streams/developer-guide/processor-api.html
index 6719ad1..fdf6c86 100644
--- a/10/streams/developer-guide/processor-api.html
+++ b/10/streams/developer-guide/processor-api.html
@@ -140,8 +140,8 @@
<span class="nd">@Override</span>
<span class="kd">public</span> <span class="kt">void</span> <span
class="nf">close</span><span class="o">()</span> <span class="o">{</span>
- <span class="c1">// close the key-value store</span>
- <span class="n">kvStore</span><span class="o">.</span><span
class="na">close</span><span class="o">();</span>
+ <span class="c1">// close any resources managed by this processor</span>
+ <span class="c1">// Note: Do not close any StateStores as these are
managed by the library</span>
<span class="o">}</span>
<span class="o">}</span>
diff --git a/10/streams/index.html b/10/streams/index.html
index 1a08b69..b39a7d3 100644
--- a/10/streams/index.html
+++ b/10/streams/index.html
@@ -15,7 +15,6 @@
<script>
<!--#include virtual="../js/templateData.js" -->
</script>
-
<script id="streams-template" type="text/x-handlebars-template">
<h1>Kafka Streams</h1>
<div class="sub-nav-sticky">
@@ -79,10 +78,9 @@
<div class="first__app__cta">
<a href="/{{version}}/documentation/streams/tutorial"
class="first__app__btn">Write your first app</a>
</div>
- </div>
- <hr class="separator" id="streams-use-cases">
- <h3 class="stream__text streams-link">Streams API use cases <a
id="streams-use-case" href="#streams-use-cases"><i class="fas fa-link "
style="color:#053ce2"></i></a></h3>
-
+ </div>
+ <hr class="separator">
+ <h3 class="stream__text">Streams API use cases</h3>
<div class="customers__grid">
<div class="customer__grid">
<div class="customer__item streams_logo_grid streams__ny__grid">
@@ -316,27 +314,8 @@
</div>
<!--#include virtual="../../includes/_footer.htm" -->
<script>
-
$(function() {
-
-
- $('.streams-link').mouseenter(function(){
- $('#streams-use-case').css('visibility','visible');
- });
-
- $('.streams-link').mouseleave(function(){
- $('#streams-use-case').css('visibility','hidden');
- });
-
- $('#streams-use-case').click(function(){
- $('#streams-use-case').css('visibility','hidden');
- });
-
-
- $('#streams-use-case').mouseenter(function(){
- $('#streams-use-case').css('visibility','visible');
- });
-
+
// Show selected style on nav item
$('.b-nav__streams').addClass('selected');
diff --git a/10/streams/upgrade-guide.html b/10/streams/upgrade-guide.html
index 87d34f1..58cb91c 100644
--- a/10/streams/upgrade-guide.html
+++ b/10/streams/upgrade-guide.html
@@ -34,28 +34,46 @@
</div>
<p>
- If you want to upgrade from 0.11.0.x to 1.0.0 you don't need to do any
code changes as the public API is fully backward compatible.
+ If you want to upgrade from 0.10.2.x or 0.11.0.x to 1.0.x you don't
need to do any code changes as the public API is fully backward compatible.
However, some public APIs were deprecated and thus it is recommended
to update your code eventually to allow for future upgrades.
- See <a href="#streams_api_changes_100">below</a> a complete list of
1.0.0 API and semantic changes that allow you to advance your application
and/or simplify your code base, including the usage of new features.
+ See below a complete list of <a
href="#streams_api_changes_100">1.0</a> and <a
href="#streams_api_changes_0110">0.11.0</a> API
+ and semantic changes that allow you to advance your application and/or
simplify your code base, including the usage of new features.
+ Additionally, Streams API 1.0.x requires broker on-disk message format
version 0.10 or higher; thus, you need to make sure that the message
+ format is configured correctly before you upgrade your Kafka Streams
application.
</p>
<p>
- If you want to upgrade from 0.10.2.x to 0.11.0 you don't need to do
any code changes as the public API is fully backward compatible.
- However, some configuration parameters were deprecated and thus it is
recommended to update your code eventually to allow for future upgrades.
- See <a href="#streams_api_changes_0110">below</a> a complete list of
0.11.0 API and semantic changes that allow you to advance your application
and/or simplify your code base, including the usage of new features.
+ If you want to upgrade from 0.10.1.x to 1.0.x see the Upgrade Sections
for <a
href="/{{version}}/documentation/#upgrade_1020_streams"><b>0.10.2</b></a>,
+ <a
href="/{{version}}/documentation/#upgrade_1100_streams"><b>0.11.0</b></a>, and
+ <a
href="/{{version}}/documentation/#upgrade_100_streams"><b>1.0</b></a>.
+ Note, that a brokers on-disk message format must be on version 0.10 or
higher to run a Kafka Streams application version 1.0 or higher.
+ See below a complete list of <a
href="#streams_api_changes_0102">0.10.2</a>, <a
href="#streams_api_changes_0110">0.11.0</a>,
+ and <a href="#streams_api_changes_100">1.0</a> API and semantical
changes that allow you to advance your application and/or simplify your code
base, including the usage of new features.
</p>
<p>
- If you want to upgrade from 0.10.1.x to 0.10.2, see the <a
href="/{{version}}/documentation/#upgrade_1020_streams"><b>Upgrade Section for
0.10.2</b></a>.
- It highlights incompatible changes you need to consider to upgrade
your code and application.
- See <a href="#streams_api_changes_0102">below</a> a complete list of
0.10.2 API and semantic changes that allow you to advance your application
and/or simplify your code base, including the usage of new features.
- </p>
-
- <p>
- If you want to upgrade from 0.10.0.x to 0.10.1, see the <a
href="/{{version}}/documentation/#upgrade_1010_streams"><b>Upgrade Section for
0.10.1</b></a>.
- It highlights incompatible changes you need to consider to upgrade
your code and application.
- See <a href="#streams_api_changes_0101">below</a> a complete list of
0.10.1 API changes that allow you to advance your application and/or simplify
your code base, including the usage of new features.
+ Upgrading from 0.10.0.x to 1.0.x directly is also possible.
+ Note, that a brokers must be on version 0.10.1 or higher and on-disk
message format must be on version 0.10 or higher
+ to run a Kafka Streams application version 1.0 or higher.
+ See <a href="#streams_api_changes_0101">Streams API changes in
0.10.1</a>, <a href="#streams_api_changes_0102">Streams API changes in
0.10.2</a>,
+ <a href="#streams_api_changes_0110">Streams API changes in 0.11.0</a>,
and <a href="#streams_api_changes_100">Streams API changes in 1.0</a>
+ for a complete list of API changes.
+ Upgrading to 1.0.2 requires two rolling bounces with config
<code>upgrade.from="0.10.0"</code> set for first upgrade phase
+ (cf. <a
href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-268%3A+Simplify+Kafka+Streams+Rebalance+Metadata+Upgrade">KIP-268</a>).
+ As an alternative, an offline upgrade is also possible.
</p>
+ <ul>
+ <li> prepare your application instances for a rolling bounce and make
sure that config <code>upgrade.from</code> is set to <code>"0.10.0"</code> for
new version 1.0.2</li>
+ <li> bounce each instance of your application once </li>
+ <li> prepare your newly deployed 1.0.2 application instances for a
second round of rolling bounces; make sure to remove the value for config
<code>upgrade.mode</code> </li>
+ <li> bounce each instance of your application once more to complete
the upgrade </li>
+ </ul>
+ <p> Upgrading from 0.10.0.x to 1.0.0 or 1.0.1 requires an offline upgrade
(rolling bounce upgrade is not supported) </p>
+ <ul>
+ <li> stop all old (0.10.0.x) application instances </li>
+ <li> update your code and swap old code and jar file with new code and
new jar file </li>
+ <li> restart all new (1.0.0 or 1.0.1) application instances </li>
+ </ul>
<h3><a id="streams_api_changes_100"
href="#streams_api_changes_100">Streams API changes in 1.0.0</a></h3>
diff --git a/10/upgrade.html b/10/upgrade.html
index caf8e1c..2d53cd5 100644
--- a/10/upgrade.html
+++ b/10/upgrade.html
@@ -129,17 +129,77 @@
be used if the SaslHandshake request version is greater than 0. </li>
</ul>
-<h5><a id="upgrade_100_streams" href="#upgrade_100_streams">Upgrading a 1.0.0
Kafka Streams Application</a></h5>
+<h5><a id="upgrade_100_streams_from_0110"
href="#upgrade_100_streams_from_0110">Upgrading a 0.11.0 Kafka Streams
Application</a></h5>
<ul>
<li> Upgrading your Streams application from 0.11.0 to 1.0.0 does not
require a broker upgrade.
- A Kafka Streams 1.0.0 application can connect to 0.11.0, 0.10.2 and
0.10.1 brokers (it is not possible to connect to 0.10.0 brokers though).
- However, Kafka Streams 1.0 requires 0.10 message format or newer and
does not work with older message formats. </li>
+ A Kafka Streams 1.0.0 application can connect to 0.11.0, 0.10.2 and
0.10.1 brokers (it is not possible to connect to 0.10.0 brokers though).
+ However, Kafka Streams 1.0 requires 0.10 message format or newer and
does not work with older message formats. </li>
<li> If you are monitoring on streams metrics, you will need make some
changes to the metrics names in your reporting and monitoring code, because the
metrics sensor hierarchy was changed. </li>
<li> There are a few public APIs including
<code>ProcessorContext#schedule()</code>, <code>Processor#punctuate()</code>
and <code>KStreamBuilder</code>, <code>TopologyBuilder</code> are being
deprecated by new APIs.
- We recommend making corresponding code changes, which should be very
minor since the new APIs look quite similar, when you upgrade.
+ We recommend making corresponding code changes, which should be very
minor since the new APIs look quite similar, when you upgrade.
<li> See <a
href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_100">Streams
API changes in 1.0.0</a> for more details. </li>
</ul>
+<h5><a id="upgrade_100_streams_from_0102"
href="#upgrade_100_streams_from_0102">Upgrading a 0.10.2 Kafka Streams
Application</a></h5>
+<ul>
+ <li> Upgrading your Streams application from 0.10.2 to 1.0 does not
require a broker upgrade.
+ A Kafka Streams 1.0 application can connect to 1.0, 0.11.0, 0.10.2
and 0.10.1 brokers (it is not possible to connect to 0.10.0 brokers though).
</li>
+ <li> If you are monitoring on streams metrics, you will need make some
changes to the metrics names in your reporting and monitoring code, because the
metrics sensor hierarchy was changed. </li>
+ <li> There are a few public APIs including
<code>ProcessorContext#schedule()</code>, <code>Processor#punctuate()</code>
and <code>KStreamBuilder</code>, <code>TopologyBuilder</code> are being
deprecated by new APIs.
+ We recommend making corresponding code changes, which should be very
minor since the new APIs look quite similar, when you upgrade.
+ <li> If you specify customized <code>key.serde</code>,
<code>value.serde</code> and <code>timestamp.extractor</code> in configs, it is
recommended to use their replaced configure parameter as these configs are
deprecated. </li>
+ <li> See <a
href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_0110">Streams
API changes in 0.11.0</a> for more details. </li>
+</ul>
+
+<h5><a id="upgrade_100_streams_from_0101"
href="#upgrade_1100_streams_from_0101">Upgrading a 0.10.1 Kafka Streams
Application</a></h5>
+<ul>
+ <li> Upgrading your Streams application from 0.10.1 to 1.0 does not
require a broker upgrade.
+ A Kafka Streams 1.0 application can connect to 1.0, 0.11.0, 0.10.2
and 0.10.1 brokers (it is not possible to connect to 0.10.0 brokers though).
</li>
+ <li> You need to recompile your code. Just swapping the Kafka Streams
library jar file will not work and will break your application. </li>
+ <li> If you are monitoring on streams metrics, you will need make some
changes to the metrics names in your reporting and monitoring code, because the
metrics sensor hierarchy was changed. </li>
+ <li> There are a few public APIs including
<code>ProcessorContext#schedule()</code>, <code>Processor#punctuate()</code>
and <code>KStreamBuilder</code>, <code>TopologyBuilder</code> are being
deprecated by new APIs.
+ We recommend making corresponding code changes, which should be very
minor since the new APIs look quite similar, when you upgrade.
+ <li> If you specify customized <code>key.serde</code>,
<code>value.serde</code> and <code>timestamp.extractor</code> in configs, it is
recommended to use their replaced configure parameter as these configs are
deprecated. </li>
+ <li> If you use a custom (i.e., user implemented) timestamp extractor, you
will need to update this code, because the <code>TimestampExtractor</code>
interface was changed. </li>
+ <li> If you register custom metrics, you will need to update this code,
because the <code>StreamsMetric</code> interface was changed. </li>
+ <li> See <a
href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_100">Streams
API changes in 1.0.0</a>,
+ <a
href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_0110">Streams
API changes in 0.11.0</a> and
+ <a
href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_0102">Streams
API changes in 0.10.2</a> for more details. </li>
+</ul>
+
+<h5><a id="upgrade_100_streams_from_0100"
href="#upgrade_100_streams_from_0100">Upgrading a 0.10.0 Kafka Streams
Application</a></h5>
+<ul>
+ <li> Upgrading your Streams application from 0.10.0 to 1.0 does require a
<a href="#upgrade_10_1">broker upgrade</a> because a Kafka Streams 1.0
application can only connect to 0.1, 0.11.0, 0.10.2, or 0.10.1 brokers. </li>
+ <li> There are couple of API changes, that are not backward compatible
(cf. <a
href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_100">Streams
API changes in 1.0.0</a>,
+ <a
href="/{{version}}/documentation/streams#streams_api_changes_0110">Streams API
changes in 0.11.0</a>,
+ <a
href="/{{version}}/documentation/streams#streams_api_changes_0102">Streams API
changes in 0.10.2</a>, and
+ <a
href="/{{version}}/documentation/streams#streams_api_changes_0101">Streams API
changes in 0.10.1</a> for more details).
+ Thus, you need to update and recompile your code. Just swapping the
Kafka Streams library jar file will not work and will break your application.
</li>
+ <li> Upgrading from 0.10.0.x to 1.0.2 requires two rolling bounces with
config <code>upgrade.from="0.10.0"</code> set for first upgrade phase
+ (cf. <a
href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-268%3A+Simplify+Kafka+Streams+Rebalance+Metadata+Upgrade">KIP-268</a>).
+ As an alternative, an offline upgrade is also possible.
+ <ul>
+ <li> prepare your application instances for a rolling bounce and
make sure that config <code>upgrade.from</code> is set to <code>"0.10.0"</code>
for new version 0.11.0.3 </li>
+ <li> bounce each instance of your application once </li>
+ <li> prepare your newly deployed 1.0.2 application instances for a
second round of rolling bounces; make sure to remove the value for config
<code>upgrade.mode</code> </li>
+ <li> bounce each instance of your application once more to
complete the upgrade </li>
+ </ul>
+ </li>
+ <li> Upgrading from 0.10.0.x to 1.0.0 or 1.0.1 requires an offline upgrade
(rolling bounce upgrade is not supported)
+ <ul>
+ <li> stop all old (0.10.0.x) application instances </li>
+ <li> update your code and swap old code and jar file with new code
and new jar file </li>
+ <li> restart all new (1.0.0 or 1.0.1) application instances </li>
+ </ul>
+ </li>
+</ul>
+
+<h5><a id="upgrade_102_notable" href="#upgrade_102_notable">Notable changes in
1.0.2</a></h5>
+<ul>
+ <li> New Kafka Streams configuration parameter <code>upgrade.from</code>
added that allows rolling bounce upgrade from version 0.10.0.x </li>
+ <li> See the <a
href="/{{version}}/documentation/streams/upgrade-guide.html"><b>Kafka Streams
upgrade guide</b></a> for details about this new config.
+</ul>
+
<h4><a id="upgrade_11_0_0" href="#upgrade_11_0_0">Upgrading from 0.8.x, 0.9.x,
0.10.0.x, 0.10.1.x or 0.10.2.x to 0.11.0.0</a></h4>
<p>Kafka 0.11.0.0 introduces a new message format version as well as wire
protocol changes. By following the recommended rolling upgrade plan below,
you guarantee no downtime during the upgrade. However, please review the <a
href="#upgrade_1100_notable">notable changes in 0.11.0.0</a> before upgrading.
@@ -188,11 +248,55 @@
<h5><a id="upgrade_1100_streams" href="#upgrade_1100_streams">Upgrading a
0.10.2 Kafka Streams Application</a></h5>
<ul>
<li> Upgrading your Streams application from 0.10.2 to 0.11.0 does not
require a broker upgrade.
- A Kafka Streams 0.11.0 application can connect to 0.11.0, 0.10.2 and
0.10.1 brokers (it is not possible to connect to 0.10.0 brokers though). </li>
+ A Kafka Streams 0.11.0 application can connect to 0.11.0, 0.10.2 and
0.10.1 brokers (it is not possible to connect to 0.10.0 brokers though). </li>
<li> If you specify customized <code>key.serde</code>,
<code>value.serde</code> and <code>timestamp.extractor</code> in configs, it is
recommended to use their replaced configure parameter as these configs are
deprecated. </li>
<li> See <a
href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_0110">Streams
API changes in 0.11.0</a> for more details. </li>
</ul>
+<h5><a id="upgrade_1100_streams_from_0101"
href="#upgrade_1100_streams_from_0101">Upgrading a 0.10.1 Kafka Streams
Application</a></h5>
+<ul>
+ <li> Upgrading your Streams application from 0.10.1 to 0.11.0 does not
require a broker upgrade.
+ A Kafka Streams 0.11.0 application can connect to 0.11.0, 0.10.2 and
0.10.1 brokers (it is not possible to connect to 0.10.0 brokers though). </li>
+ <li> You need to recompile your code. Just swapping the Kafka Streams
library jar file will not work and will break your application. </li>
+ <li> If you specify customized <code>key.serde</code>,
<code>value.serde</code> and <code>timestamp.extractor</code> in configs, it is
recommended to use their replaced configure parameter as these configs are
deprecated. </li>
+ <li> If you use a custom (i.e., user implemented) timestamp extractor, you
will need to update this code, because the <code>TimestampExtractor</code>
interface was changed. </li>
+ <li> If you register custom metrics, you will need to update this code,
because the <code>StreamsMetric</code> interface was changed. </li>
+ <li> See <a
href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_0110">Streams
API changes in 0.11.0</a> and
+ <a
href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_0102">Streams
API changes in 0.10.2</a> for more details. </li>
+</ul>
+
+<h5><a id="upgrade_1100_streams_from_0100"
href="#upgrade_1100_streams_from_0100">Upgrading a 0.10.0 Kafka Streams
Application</a></h5>
+<ul>
+ <li> Upgrading your Streams application from 0.10.0 to 0.11.0 does require
a <a href="#upgrade_10_1">broker upgrade</a> because a Kafka Streams 0.11.0
application can only connect to 0.11.0, 0.10.2, or 0.10.1 brokers. </li>
+ <li> There are couple of API changes, that are not backward compatible
(cf. <a
href="/{{version}}/documentation/streams#streams_api_changes_0110">Streams API
changes in 0.11.0</a>,
+ <a
href="/{{version}}/documentation/streams#streams_api_changes_0102">Streams API
changes in 0.10.2</a>, and
+ <a
href="/{{version}}/documentation/streams#streams_api_changes_0101">Streams API
changes in 0.10.1</a> for more details).
+ Thus, you need to update and recompile your code. Just swapping the
Kafka Streams library jar file will not work and will break your application.
</li>
+ <li> Upgrading from 0.10.0.x to 0.11.0.3 requires two rolling bounces with
config <code>upgrade.from="0.10.0"</code> set for first upgrade phase
+ (cf. <a
href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-268%3A+Simplify+Kafka+Streams+Rebalance+Metadata+Upgrade">KIP-268</a>).
+ As an alternative, an offline upgrade is also possible.
+ <ul>
+ <li> prepare your application instances for a rolling bounce and
make sure that config <code>upgrade.from</code> is set to <code>"0.10.0"</code>
for new version 0.11.0.3 </li>
+ <li> bounce each instance of your application once </li>
+ <li> prepare your newly deployed 0.11.0.3 application instances
for a second round of rolling bounces; make sure to remove the value for config
<code>upgrade.mode</code> </li>
+ <li> bounce each instance of your application once more to
complete the upgrade </li>
+ </ul>
+ </li>
+ <li> Upgrading from 0.10.0.x to 0.11.0.0, 0.11.0.1, or 0.11.0.2 requires
an offline upgrade (rolling bounce upgrade is not supported)
+ <ul>
+ <li> stop all old (0.10.0.x) application instances </li>
+ <li> update your code and swap old code and jar file with new code
and new jar file </li>
+ <li> restart all new (0.11.0.0 , 0.11.0.1, or 0.11.0.2)
application instances </li>
+ </ul>
+ </li>
+</ul>
+
+<h5><a id="upgrade_1103_notable" href="#upgrade_1103_notable">Notable changes
in 0.11.0.3</a></h5>
+<ul>
+ <li> New Kafka Streams configuration parameter <code>upgrade.from</code>
added that allows rolling bounce upgrade from version 0.10.0.x </li>
+ <li> See the <a
href="/{{version}}/documentation/streams/upgrade-guide.html"><b>Kafka Streams
upgrade guide</b></a> for details about this new config.
+</ul>
+
<h5><a id="upgrade_1100_notable" href="#upgrade_1100_notable">Notable changes
in 0.11.0.0</a></h5>
<ul>
<li>Unclean leader election is now disabled by default. The new default
favors durability over availability. Users who wish to
@@ -343,6 +447,35 @@ Kafka cluster before upgrading your clients. Version
0.10.2 brokers support 0.8.
<li> See <a
href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_0102">Streams
API changes in 0.10.2</a> for more details. </li>
</ul>
+<h5><a id="upgrade_1020_streams_from_0100"
href="#upgrade_1020_streams_from_0100">Upgrading a 0.10.0 Kafka Streams
Application</a></h5>
+<ul>
+ <li> Upgrading your Streams application from 0.10.0 to 0.10.2 does require
a <a href="#upgrade_10_1">broker upgrade</a> because a Kafka Streams 0.10.2
application can only connect to 0.10.2 or 0.10.1 brokers. </li>
+ <li> There are couple of API changes, that are not backward compatible
(cf. <a
href="/{{version}}/documentation/streams#streams_api_changes_0102">Streams API
changes in 0.10.2</a> for more details).
+ Thus, you need to update and recompile your code. Just swapping the
Kafka Streams library jar file will not work and will break your application.
</li>
+ <li> Upgrading from 0.10.0.x to 0.10.2.2 requires two rolling bounces with
config <code>upgrade.from="0.10.0"</code> set for first upgrade phase
+ (cf. <a
href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-268%3A+Simplify+Kafka+Streams+Rebalance+Metadata+Upgrade">KIP-268</a>).
+ As an alternative, an offline upgrade is also possible.
+ <ul>
+ <li> prepare your application instances for a rolling bounce and
make sure that config <code>upgrade.from</code> is set to <code>"0.10.0"</code>
for new version 0.10.2.2 </li>
+ <li> bounce each instance of your application once </li>
+ <li> prepare your newly deployed 0.10.2.2 application instances
for a second round of rolling bounces; make sure to remove the value for config
<code>upgrade.mode</code> </li>
+ <li> bounce each instance of your application once more to
complete the upgrade </li>
+ </ul>
+ </li>
+ <li> Upgrading from 0.10.0.x to 0.10.2.0 or 0.10.2.1 requires an offline
upgrade (rolling bounce upgrade is not supported)
+ <ul>
+ <li> stop all old (0.10.0.x) application instances </li>
+ <li> update your code and swap old code and jar file with new code
and new jar file </li>
+ <li> restart all new (0.10.2.0 or 0.10.2.1) application instances
</li>
+ </ul>
+ </li>
+</ul>
+
+<h5><a id="upgrade_10202_notable" href="#upgrade_10202_notable">Notable
changes in 0.10.2.2</a></h5>
+<ul>
+ <li> New configuration parameter <code>upgrade.from</code> added that
allows rolling bounce upgrade from version 0.10.0.x </li>
+</ul>
+
<h5><a id="upgrade_10201_notable" href="#upgrade_10201_notable">Notable
changes in 0.10.2.1</a></h5>
<ul>
<li> The default values for two configurations of the StreamsConfig class
were changed to improve the resiliency of Kafka Streams applications. The
internal Kafka Streams producer <code>retries</code> default value was changed
from 0 to 10. The internal Kafka Streams consumer
<code>max.poll.interval.ms</code> default value was changed from 300000 to
<code>Integer.MAX_VALUE</code>.
@@ -421,6 +554,25 @@ only support 0.10.1.x or later brokers while 0.10.1.x
brokers also support older
<li> Upgrading your Streams application from 0.10.0 to 0.10.1 does require
a <a href="#upgrade_10_1">broker upgrade</a> because a Kafka Streams 0.10.1
application can only connect to 0.10.1 brokers. </li>
<li> There are couple of API changes, that are not backward compatible
(cf. <a
href="/{{version}}/documentation/streams/upgrade-guide#streams_api_changes_0101">Streams
API changes in 0.10.1</a> for more details).
Thus, you need to update and recompile your code. Just swapping the
Kafka Streams library jar file will not work and will break your application.
</li>
+<!-- TODO: add when 0.10.1.2 is released
+ <li> Upgrading from 0.10.0.x to 0.10.1.2 requires two rolling bounces with
config <code>upgrade.from="0.10.0"</code> set for first upgrade phase
+ (cf. <a
href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-268%3A+Simplify+Kafka+Streams+Rebalance+Metadata+Upgrade">KIP-268</a>).
+ As an alternative, an offline upgrade is also possible.
+ <ul>
+ <li> prepare your application instances for a rolling bounce and
make sure that config <code>upgrade.from</code> is set to <code>"0.10.0"</code>
for new version 0.10.1.2 </li>
+ <li> bounce each instance of your application once </li>
+ <li> prepare your newly deployed 0.10.1.2 application instances
for a second round of rolling bounces; make sure to remove the value for config
<code>upgrade.mode</code> </li>
+ <li> bounce each instance of your application once more to
complete the upgrade </li>
+ </ul>
+ </li>
+-->
+ <li> Upgrading from 0.10.0.x to 0.10.1.0 or 0.10.1.1 requires an offline
upgrade (rolling bounce upgrade is not supported)
+ <ul>
+ <li> stop all old (0.10.0.x) application instances </li>
+ <li> update your code and swap old code and jar file with new code
and new jar file </li>
+ <li> restart all new (0.10.1.0 or 0.10.1.1) application instances
</li>
+ </ul>
+ </li>
</ul>
<h5><a id="upgrade_1010_notable" href="#upgrade_1010_notable">Notable changes
in 0.10.1.0</a></h5>
diff --git a/downloads.html b/downloads.html
index 13bd2ed..b0731f5 100644
--- a/downloads.html
+++ b/downloads.html
@@ -3,18 +3,17 @@
<div class="content">
<!--#include virtual="includes/_nav.htm" -->
<div class="right">
- <h1>Download</h1>
+ <h1>Download</h1>
<p>1.1.0 is the latest release. The current stable version is 1.1.0.</p>
-
<p>
You can verify your download by following these <a
href="https://www.apache.org/info/verification.html">procedures</a> and using
these <a href="https://kafka.apache.org/KEYS">KEYS</a>.
</p>
- <span id="1.1.0"></span>
- <h3 class="download-version">1.1.0<a href="#1.1.0"><i class="fas fa-link "
style="color:#053ce2"></i></a></h3>
+ <span id="1.1.0"></span>
+ <h3 class="download-version">1.1.0<a href="#1.1.0"><i class="fas fa-link "
style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released March 28, 2018
@@ -52,35 +51,55 @@
For more information, please read the detailed <a
href="https://www.apache.org/dist/kafka/1.1.0/RELEASE_NOTES.html">Release
Notes</a>.
</p>
- <span id="1.0.1"></span>
- <h3 class="download-version">1.0.1<a href="#1.0.1"><i class="fas fa-link "
style="color:#053ce2"></i></a></h3>
+
+ <span id="1.0.2"></span>
+ <h3 class="download-version">1.0.2<a href="#1.0.2"><i class="fas fa-link "
style="color:#053ce2"></i></a></h3>
+ <ul>
+ <li>
+ Released July 8th, 2018
+ </li>
+ <li>
+ <a
href="https://www.apache.org/dist/kafka/1.0.2/RELEASE_NOTES.html">Release
Notes</a>
+ </li>
+ <li>
+ Source download: <a
href="https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.2/kafka-1.0.2-src.tgz">kafka-1.0.2-src.tgz</a>
(<a
href="https://www.apache.org/dist/kafka/1.0.2/kafka-1.0.2-src.tgz.asc">asc</a>,
<a
href="https://www.apache.org/dist/kafka/1.0.2/kafka-1.0.2-src.tgz.sha512">sha512</a>)
+ </li>
+ <li>
+ Binary downloads:
+ <ul>
+ <li>Scala 2.11 - <a
href="https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.2/kafka_2.11-1.0.2.tgz">kafka_2.11-1.0.2.tgz</a>
(<a
href="https://www.apache.org/dist/kafka/1.0.2/kafka_2.11-1.0.2.tgz.asc">asc</a>,
<a
href="https://www.apache.org/dist/kafka/1.0.2/kafka_2.11-1.0.2.tgz.sha512">sha512</a>)</li>
+ <li>Scala 2.12 - <a
href="https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.2/kafka_2.12-1.0.2.tgz">kafka_2.12-1.0.2.tgz</a>
(<a
href="https://www.apache.org/dist/kafka/1.0.2/kafka_2.12-1.0.2.tgz.asc">asc</a>,
<a
href="https://www.apache.org/dist/kafka/1.0.2/kafka_2.12-1.0.2.tgz.sha512">sha512</a>)</li>
+ </ul>
+ We build for multiple versions of Scala. This only matters if
you are using Scala and you want a version built for the same Scala version you
use. Otherwise any version should work (2.11 is recommended).
+ </li>
+ </ul>
+ <span id="1.0.1"></span>
+ <h3 class="download-version">1.0.1<a href="#1.0.1"><i class="fas fa-link "
style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released March 5, 2018
</li>
<li>
- <a
href="https://www.apache.org/dist/kafka/1.0.1/RELEASE_NOTES.html">Release
Notes</a>
+ <a
href="https://archive.apache.org/dist/kafka/1.0.1/RELEASE_NOTES.html">Release
Notes</a>
</li>
<li>
- Source download: <a
href="https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.1/kafka-1.0.1-src.tgz">kafka-1.0.1-src.tgz</a>
(<a
href="https://www.apache.org/dist/kafka/1.0.1/kafka-1.0.1-src.tgz.asc">asc</a>,
<a
href="https://www.apache.org/dist/kafka/1.0.1/kafka-1.0.1-src.tgz.sha512">sha512</a>)
+ Source download: <a
href="https://archive.apache.org/dist/kafka/1.0.1/kafka-1.0.1-src.tgz">kafka-1.0.1-src.tgz</a>
(<a
href="https://archive.apache.org/dist/kafka/1.0.1/kafka-1.0.1-src.tgz.asc">asc</a>,
<a
href="https://archive.apache.org/dist/kafka/1.0.1/kafka-1.0.1-src.tgz.sha512">sha512</a>)
</li>
<li>
Binary downloads:
<ul>
- <li>Scala 2.11 - <a
href="https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.1/kafka_2.11-1.0.1.tgz">kafka_2.11-1.0.1.tgz</a>
(<a
href="https://www.apache.org/dist/kafka/1.0.1/kafka_2.11-1.0.1.tgz.asc">asc</a>,
<a
href="https://www.apache.org/dist/kafka/1.0.1/kafka_2.11-1.0.1.tgz.sha512">sha512</a>)</li>
- <li>Scala 2.12 - <a
href="https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.1/kafka_2.12-1.0.1.tgz">kafka_2.12-1.0.1.tgz</a>
(<a
href="https://www.apache.org/dist/kafka/1.0.1/kafka_2.12-1.0.1.tgz.asc">asc</a>,
<a
href="https://www.apache.org/dist/kafka/1.0.1/kafka_2.12-1.0.1.tgz.sha512">sha512</a>)</li>
+ <li>Scala 2.11 - <a
href="https://archive.apache.org/dist/kafka/1.0.1/kafka_2.11-1.0.1.tgz">kafka_2.11-1.0.1.tgz</a>
(<a
href="https://archive.apache.org/dist/kafka/1.0.1/kafka_2.11-1.0.1.tgz.asc">asc</a>,
<a
href="https://archive.apache.org/dist/kafka/1.0.1/kafka_2.11-1.0.1.tgz.sha512">sha512</a>)</li>
+ <li>Scala 2.12 - <a
href="https://archive.apache.org/dist/kafka/1.0.1/kafka_2.12-1.0.1.tgz">kafka_2.12-1.0.1.tgz</a>
(<a
href="https://archive.apache.org/dist/kafka/1.0.1/kafka_2.12-1.0.1.tgz.asc">asc</a>,
<a
href="https://archive.apache.org/dist/kafka/1.0.1/kafka_2.12-1.0.1.tgz.sha512">sha512</a>)</li>
</ul>
We build for multiple versions of Scala. This only matters if
you are using Scala and you want a version built for the same Scala version you
use. Otherwise any version should work (2.11 is recommended).
</li>
</ul>
- <span id="1.0.0"></span>
- <h3 class="download-version">1.0.0<a href="#1.0.0"><i class="fas fa-link
" style="color:#053ce2"></i></a></h3>
-
-
+ <span id="1.0.0"></span>
+ <h3 class="download-version">1.0.0<a href="#1.0.0"><i class="fas fa-link "
style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released November 1, 2017
@@ -127,8 +146,9 @@
For more information, please read the detailed <a
href="https://www.apache.org/dist/kafka/1.0.0/RELEASE_NOTES.html">Release
Notes</a>.
</p>
- <span id="0.11.0.3"></span>
- <h3 class="download-version">0.11.0.3<a href="#0.11.0.3"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
+
+ <span id="0.11.0.3"></span>
+ <h3 class="download-version">0.11.0.3<a href="#0.11.0.3"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released July 2ed, 2018
@@ -149,8 +169,9 @@
</li>
</ul>
- <span id="0.11.0.2"></span>
- <h3 class="download-version">0.11.0.2<a href="#0.11.0.2"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
+
+ <span id="0.11.0.2"></span>
+ <h3 class="download-version">0.11.0.2<a href="#0.11.0.2"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released November 17, 2017
@@ -171,9 +192,8 @@
</li>
</ul>
- <span id="0.11.0.1"></span>
- <h3 class="download-version">0.11.0.1<a href="#0.11.0.1"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
-
+ <span id="0.11.0.1"></span>
+ <h3 class="download-version">0.11.0.1<a href="#0.11.0.1"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released September 13, 2017
@@ -194,9 +214,9 @@
</li>
</ul>
- <span id="0.11.0.0"></span>
- <h3 class="download-version">0.11.0.0<a href="#0.11.0.0"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
-
+
+ <span id="0.11.0.0"></span>
+ <h3 class="download-version">0.11.0.0<a href="#0.11.0.0"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released June 28, 2017
@@ -217,9 +237,9 @@
</li>
</ul>
- <span id="0.10.2.2"></span>
- <h3 class="download-version">0.10.2.2<a href="#0.10.2.2"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
+ <span id="0.10.2.2"></span>
+ <h3 class="download-version">0.10.2.2<a href="#0.10.2.2"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released July 2nd, 2018
@@ -244,9 +264,9 @@
</li>
</ul>
- <span id="0.10.2.1"></span>
- <h3 class="download-version">0.10.2.1<a href="#0.10.2.1"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
+ <span id="0.10.2.1"></span>
+ <h3 class="download-version">0.10.2.1<a href="#0.10.2.1"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released April 26, 2017
@@ -271,9 +291,9 @@
</li>
</ul>
- <span id="0.10.2.0"></span>
- <h3 class="download-version">0.10.2.0<a href="#0.10.2.0"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
-
+
+ <span id="0.10.2.0"></span>
+ <h3 class="download-version">0.10.2.0<a href="#0.10.2.0"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released February 21, 2017
@@ -298,9 +318,9 @@
</li>
</ul>
- <span id="0.10.1.1"></span>
- <h3 class="download-version">0.10.1.1<a href="#0.10.1.1"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
-
+
+ <span id="0.10.1.1"></span>
+ <h3 class="download-version">0.10.1.1<a href="#0.10.1.1"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released December 20, 2016
@@ -325,9 +345,9 @@
</li>
</ul>
- <span id="0.10.1.0"></span>
- <h3 class="download-version">0.10.1.0<a href="#0.10.1.0"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
+ <span id="0.10.1.0"></span>
+ <h3 class="download-version">0.10.1.0<a href="#0.10.1.0"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released October 20, 2016
@@ -350,9 +370,9 @@
</li>
</ul>
- <span id="0.10.0.1"></span>
- <h3 class="download-version">0.10.0.1<a href="#0.10.0.1"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
+ <span id="0.10.0.1"></span>
+ <h3 class="download-version">0.10.0.1<a href="#0.10.0.1"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released August 10, 2016
@@ -375,9 +395,9 @@
</li>
</ul>
- <span id="0.10.0.0"></span>
- <h3 class="download-version">0.10.0.0<a href="#0.10.0.0"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
+ <span id="0.10.0.0"></span>
+ <h3 class="download-version">0.10.0.0<a href="#0.10.0.0"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released May 22, 2016
@@ -400,9 +420,9 @@
</li>
</ul>
- <span id="0.9.0.1"></span>
- <h3 class="download-version">0.9.0.1<a href="#0.9.0.1"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
+ <span id="0.9.0.1"></span>
+ <h3 class="download-version">0.9.0.1<a href="#0.9.0.1"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released February 19, 2016
@@ -425,9 +445,9 @@
</li>
</ul>
- <span id="0.9.0.0"></span>
- <h3 class="download-version">0.9.0.0<a href="#0.9.0.0"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
-
+
+ <span id="0.9.0.0"></span>
+ <h3 class="download-version">0.9.0.0<a href="#0.9.0.0"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released November 23, 2015
@@ -450,9 +470,9 @@
</li>
</ul>
- <span id="0.8.2.2"></span>
- <h3 class="download-version">0.8.2.2<a href="#0.8.2.2"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
+ <span id="0.8.2.2"></span>
+ <h3 class="download-version">0.8.2.2<a href="#0.8.2.2"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released October 2, 2015
@@ -479,9 +499,9 @@
</li>
</ul>
- <span id="0.8.2.1"></span>
- <h3 class="download-version">0.8.0.2<a href="#0.8.0.2"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
+ <span id="0.8.2.1"></span>
+ <h3 class="download-version">0.8.0.2<a href="#0.8.0.2"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released March 11, 2015
@@ -508,9 +528,9 @@
</li>
</ul>
- <span id="0.8.2.0"></span>
- <h3 class="download-version">0.8.2.0<a href="#0.8.2.0"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
+ <span id="0.8.2.0"></span>
+ <h3 class="download-version">0.8.2.0<a href="#0.8.2.0"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released February 2, 2015
@@ -537,9 +557,9 @@
</li>
</ul>
- <span id="0.8.2-beta"></span>
- <h3 class="download-version">0.8.2-beta<a href="#0.8.2-beta"><i
class="fas fa-link " style="color:#053ce2"></i></a></h3>
+ <span id="0.8.2-beta"></span>
+ <h3 class="download-version">0.8.2-beta<a href="#0.8.2-beta"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released October 28, 2014
@@ -566,9 +586,9 @@
</li>
</ul>
- <span id="0.8.1.1"></span>
- <h3 class="download-version">0.8.1.1 Release<a href="#0.8.1.1"><i
class="fas fa-link " style="color:#053ce2"></i></a></h3>
-
+
+ <span id="0.8.1.1"></span>
+ <h3 class="download-version">0.8.1.1 Release<a href="#0.8.1.1"><i
class="fas fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released April 29, 2014
@@ -595,9 +615,9 @@
</li>
</ul>
- <span id="0.8.1"></span>
- <h3 class="download-version">0.8.1 Release<a href="#0.8.1"><i
class="fas fa-link " style="color:#053ce2"></i></a></h3>
+ <span id="0.8.1"></span>
+ <h3 class="download-version">0.8.1 Release<a href="#0.8.1"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released March 12, 2014
@@ -626,9 +646,9 @@
</li>
</ul>
- <span id="0.8.0"></span>
- <h3 class="download-version">0.8.0 Release<a href="#0.11.0.2"><i
class="fas fa-link " style="color:#053ce2"></i></a></h3>
+ <span id="0.8.0"></span>
+ <h3 class="download-version">0.8.0 Release<a href="#0.11.0.2"><i
class="fas fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released December 3, 2013
@@ -644,9 +664,9 @@
</li>
</ul>
- <span id="0.8.0-Beta1"></span>
- <h3 class="download-version">0.8.0 Beta1 Release<a
href="#0.8.0-Beta1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
+ <span id="0.8.0-Beta1"></span>
+ <h3 class="download-version">0.8.0 Beta1 Release<a href="#0.8.0-Beta1"><i
class="fas fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released June 28, 2013
@@ -662,9 +682,9 @@
</li>
</ul>
- <span id="0.7.2"></span>
- <h3 class="download-version">0.7.2 Release<a href="#0.7.2"><i
class="fas fa-link " style="color:#053ce2"></i></a></h3>
+ <span id="0.7.2"></span>
+ <h3 class="download-version">0.7.2 Release<a href="#0.7.2"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released October 10, 2012
@@ -677,9 +697,9 @@
</li>
</ul>
- <span id="0.7.1"></span>
- <h3 class="download-version">0.7.1 Release<a href="#0.7.1"><i
class="fas fa-link " style="color:#053ce2"></i></a></h3>
+ <span id="0.7.1"></span>
+ <h3 class="download-version">0.7.1 Release<a href="#0.7.1"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released June 27, 2012
@@ -692,9 +712,9 @@
</li>
</ul>
- <span id="0.7.0"></span>
- <h3 class="download-version">0.7.0 Release<a href="#0.7.0"><i
class="fas fa-link " style="color:#053ce2"></i></a></h3>
+ <span id="0.7.0"></span>
+ <h3 class="download-version">0.7.0 Release<a href="#0.7.0"><i class="fas
fa-link " style="color:#053ce2"></i></a></h3>
<ul>
<li>
Released January 4, 2012