You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by ma...@apache.org on 2019/12/16 16:38:17 UTC

[kafka-site] branch asf-site updated (3db7723 -> c60929b)

This is an automated email from the ASF dual-hosted git repository.

manikumar pushed a change to branch asf-site
in repository https://gitbox.apache.org/repos/asf/kafka-site.git.


    from 3db7723  Update Kafka 2.4 documentaion
     new f7b4ffa  Update site for 2.4.0 release and use archive repo links for older releases
     new c60929b  update note about zk upgrade

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 24/upgrade.html                                    | 18 ++++++-
 documentation.html                                 |  2 +-
 documentation/index.html                           |  2 +-
 documentation/streams/architecture.html            |  2 +-
 documentation/streams/core-concepts.html           |  2 +-
 .../streams/developer-guide/app-reset-tool.html    |  2 +-
 .../streams/developer-guide/config-streams.html    |  2 +-
 .../streams/developer-guide/datatypes.html         |  2 +-
 documentation/streams/developer-guide/dsl-api.html |  2 +-
 documentation/streams/developer-guide/index.html   |  2 +-
 .../developer-guide/interactive-queries.html       |  2 +-
 .../streams/developer-guide/manage-topics.html     |  2 +-
 .../streams/developer-guide/memory-mgmt.html       |  2 +-
 .../streams/developer-guide/processor-api.html     |  2 +-
 .../streams/developer-guide/running-app.html       |  2 +-
 .../streams/developer-guide/security.html          |  2 +-
 documentation/streams/developer-guide/testing.html |  2 +-
 .../streams/developer-guide/write-streams.html     |  2 +-
 documentation/streams/index.html                   |  2 +-
 documentation/streams/quickstart.html              |  2 +-
 documentation/streams/upgrade-guide.html           |  2 +-
 downloads.html                                     | 63 ++++++++++++++++++----
 index.html                                         |  4 ++
 protocol.html                                      |  2 +-
 quickstart.html                                    |  2 +-
 uses.html                                          |  2 +-
 26 files changed, 96 insertions(+), 35 deletions(-)


[kafka-site] 02/02: update note about zk upgrade

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

manikumar pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/kafka-site.git

commit c60929bdfdf3a27772875783fb12407685af870a
Author: Manikumar Reddy <ma...@confluent.io>
AuthorDate: Mon Dec 16 17:43:34 2019 +0530

    update note about zk upgrade
---
 24/upgrade.html | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/24/upgrade.html b/24/upgrade.html
index ce894d1..edfba5d 100644
--- a/24/upgrade.html
+++ b/24/upgrade.html
@@ -64,9 +64,23 @@
 <p><b>Additional Upgrade Notes:</b></p>
 
 <ol>
-    <li>ZooKeeper has been upgraded to 3.5.6. Set <code>snapshot.trust.empty=true</code> in <code>zookeeper.properties</code> before the upgrade
+    <li>ZooKeeper has been upgraded to 3.5.6. ZooKeeper upgrade from 3.4.X to 3.5.6 can fail if there are no snapshot files in 3.4 data directory.
+        This usually happens in test upgrades where ZooKeeper 3.5.6 is trying to load an existing 3.4 data dir in which no snapshot file has been created.
+        For more details about the issue please refer to <a href="https://issues.apache.org/jira/browse/ZOOKEEPER-3056">ZOOKEEPER-3056</a>.
+        For multi-node ZooKeeper cluster upgrades, set <code>snapshot.trust.empty=true</code> in <code>zookeeper.properties</code> before the upgrade
         to avoid <a href="https://issues.apache.org/jira/browse/ZOOKEEPER-3056">ZOOKEEPER-3056</a>. After the new version starts successfully, it is safe to remove this config.
         See <a href="https://zookeeper.apache.org/doc/r3.5.6/zookeeperAdmin.html#sc_advancedConfiguration">ZooKeeper advanced configuration</a> for more details.
+        For standalone cluster upgrades, we have observed a data loss issue when using <code>snapshot.trust.empty=true</code> config.
+        For more details about the issue please refer to <a href="https://issues.apache.org/jira/browse/ZOOKEEPER-3644">ZOOKEEPER-3644</a>.
+        The workaround is need to manually copy the <a href="https://issues.apache.org/jira/secure/attachment/12928686/snapshot.0">snapshot</a> file to the 3.4 data directory.
+        For more details about the workaround please refer to <a href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/Upgrade+FAQ">ZooKeeper Upgrade FAQ</a>.
+    </li>
+    <li>
+        An embedded Jetty based <a href="http://zookeeper.apache.org/doc/r3.5.6/zookeeperAdmin.html#sc_adminserver">AdminServer</a> added in ZooKeeper 3.5.
+        AdminServer is enabled by default in ZooKeeper and is started on port 8080.
+        AdminServer is disabled by default in the ZooKeeper config (<code>zookeeper.properties</code>) provided by the Apache Kafka distribution.
+        Make sure to update your local <code>zookeeper.properties</code> file with <code>admin.enableServer=false</code> if you wish to disable the AdminServer.
+        Please refer <a href="http://zookeeper.apache.org/doc/r3.5.6/zookeeperAdmin.html#sc_adminserver">AdminServer config</a> to configure the AdminServer.
     </li>
 </ol>
 
@@ -74,7 +88,7 @@
 <ul>
     <li>A new Admin API has been added for partition reassignments. Due to changing the way Kafka propagates reassignment information,
         it is possible to lose reassignment state in failure edge cases while upgrading to the new version. It is not recommended to start reassignments while upgrading.</li>
-    <li>ZooKeeper has been upgraded from 3.4.14 to 3.5.5. TLS and dynamic reconfiguration are supported by the new version.</li>
+    <li>ZooKeeper has been upgraded from 3.4.14 to 3.5.6. TLS and dynamic reconfiguration are supported by the new version.</li>
     <li>The <code>bin/kafka-preferred-replica-election.sh</code> command line tool has been deprecated. It has been replaced by <code>bin/kafka-leader-election.sh</code>.</li>
     <li>The methods <code>electPreferredLeaders</code> in the Java <code>AdminClient</code> class have been deprecated in favor of the methods <code>electLeaders</code>.</li>
     <li>Scala code leveraging the <code>NewTopic(String, int, short)</code> constructor with literal values will need to explicitly call <code>toShort</code> on the second literal.</li>


[kafka-site] 01/02: Update site for 2.4.0 release and use archive repo links for older releases

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

manikumar pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/kafka-site.git

commit f7b4ffa7e03af7b9185f7c9d0f23ad169c50ff14
Author: Manikumar Reddy <ma...@confluent.io>
AuthorDate: Sat Dec 14 20:32:43 2019 +0530

    Update site for 2.4.0 release and use archive repo links for older releases
---
 documentation.html                                 |  2 +-
 documentation/index.html                           |  2 +-
 documentation/streams/architecture.html            |  2 +-
 documentation/streams/core-concepts.html           |  2 +-
 .../streams/developer-guide/app-reset-tool.html    |  2 +-
 .../streams/developer-guide/config-streams.html    |  2 +-
 .../streams/developer-guide/datatypes.html         |  2 +-
 documentation/streams/developer-guide/dsl-api.html |  2 +-
 documentation/streams/developer-guide/index.html   |  2 +-
 .../developer-guide/interactive-queries.html       |  2 +-
 .../streams/developer-guide/manage-topics.html     |  2 +-
 .../streams/developer-guide/memory-mgmt.html       |  2 +-
 .../streams/developer-guide/processor-api.html     |  2 +-
 .../streams/developer-guide/running-app.html       |  2 +-
 .../streams/developer-guide/security.html          |  2 +-
 documentation/streams/developer-guide/testing.html |  2 +-
 .../streams/developer-guide/write-streams.html     |  2 +-
 documentation/streams/index.html                   |  2 +-
 documentation/streams/quickstart.html              |  2 +-
 documentation/streams/upgrade-guide.html           |  2 +-
 downloads.html                                     | 63 ++++++++++++++++++----
 index.html                                         |  4 ++
 protocol.html                                      |  2 +-
 quickstart.html                                    |  2 +-
 uses.html                                          |  2 +-
 25 files changed, 80 insertions(+), 33 deletions(-)

diff --git a/documentation.html b/documentation.html
index 20dd5a8..735c6c9 100644
--- a/documentation.html
+++ b/documentation.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="23/documentation.html" -->
+<!--#include virtual="24/documentation.html" -->
diff --git a/documentation/index.html b/documentation/index.html
index eddf55e..bc16cca 100644
--- a/documentation/index.html
+++ b/documentation/index.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="../23/documentation.html" -->
+<!--#include virtual="../24/documentation.html" -->
diff --git a/documentation/streams/architecture.html b/documentation/streams/architecture.html
index 09c6a9b..db33eb4 100644
--- a/documentation/streams/architecture.html
+++ b/documentation/streams/architecture.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="../../23/streams/architecture.html" -->
+<!--#include virtual="../../24/streams/architecture.html" -->
diff --git a/documentation/streams/core-concepts.html b/documentation/streams/core-concepts.html
index 853e305..71e9db5 100644
--- a/documentation/streams/core-concepts.html
+++ b/documentation/streams/core-concepts.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="../../23/streams/core-concepts.html" -->
+<!--#include virtual="../../24/streams/core-concepts.html" -->
diff --git a/documentation/streams/developer-guide/app-reset-tool.html b/documentation/streams/developer-guide/app-reset-tool.html
index 1cf200a..65865e3 100644
--- a/documentation/streams/developer-guide/app-reset-tool.html
+++ b/documentation/streams/developer-guide/app-reset-tool.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="../../../23/streams/developer-guide/app-reset-tool.html" -->
+<!--#include virtual="../../../24/streams/developer-guide/app-reset-tool.html" -->
diff --git a/documentation/streams/developer-guide/config-streams.html b/documentation/streams/developer-guide/config-streams.html
index 847544f..072d4a4 100644
--- a/documentation/streams/developer-guide/config-streams.html
+++ b/documentation/streams/developer-guide/config-streams.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="../../../23/streams/developer-guide/config-streams.html" -->
+<!--#include virtual="../../../24/streams/developer-guide/config-streams.html" -->
diff --git a/documentation/streams/developer-guide/datatypes.html b/documentation/streams/developer-guide/datatypes.html
index e21816c..9fe4abc 100644
--- a/documentation/streams/developer-guide/datatypes.html
+++ b/documentation/streams/developer-guide/datatypes.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="../../../23/streams/developer-guide/datatypes.html" -->
+<!--#include virtual="../../../24/streams/developer-guide/datatypes.html" -->
diff --git a/documentation/streams/developer-guide/dsl-api.html b/documentation/streams/developer-guide/dsl-api.html
index 49f5b1d..63a8533 100644
--- a/documentation/streams/developer-guide/dsl-api.html
+++ b/documentation/streams/developer-guide/dsl-api.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="../../../23/streams/developer-guide/dsl-api.html" -->
+<!--#include virtual="../../../24/streams/developer-guide/dsl-api.html" -->
diff --git a/documentation/streams/developer-guide/index.html b/documentation/streams/developer-guide/index.html
index 60c4e8d..d87c00e 100644
--- a/documentation/streams/developer-guide/index.html
+++ b/documentation/streams/developer-guide/index.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="../../../23/streams/developer-guide/index.html" -->
+<!--#include virtual="../../../24/streams/developer-guide/index.html" -->
diff --git a/documentation/streams/developer-guide/interactive-queries.html b/documentation/streams/developer-guide/interactive-queries.html
index 39bf71a..b507746 100644
--- a/documentation/streams/developer-guide/interactive-queries.html
+++ b/documentation/streams/developer-guide/interactive-queries.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="../../../23/streams/developer-guide/interactive-queries.html" -->
+<!--#include virtual="../../../24/streams/developer-guide/interactive-queries.html" -->
diff --git a/documentation/streams/developer-guide/manage-topics.html b/documentation/streams/developer-guide/manage-topics.html
index 7f1e787..cacc392 100644
--- a/documentation/streams/developer-guide/manage-topics.html
+++ b/documentation/streams/developer-guide/manage-topics.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="../../../23/streams/developer-guide/manage-topics.html" -->
+<!--#include virtual="../../../24/streams/developer-guide/manage-topics.html" -->
diff --git a/documentation/streams/developer-guide/memory-mgmt.html b/documentation/streams/developer-guide/memory-mgmt.html
index b123a45..98b3896 100644
--- a/documentation/streams/developer-guide/memory-mgmt.html
+++ b/documentation/streams/developer-guide/memory-mgmt.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="../../../23/streams/developer-guide/memory-mgmt.html" -->
+<!--#include virtual="../../../24/streams/developer-guide/memory-mgmt.html" -->
diff --git a/documentation/streams/developer-guide/processor-api.html b/documentation/streams/developer-guide/processor-api.html
index 4e0cbb2..d670c63 100644
--- a/documentation/streams/developer-guide/processor-api.html
+++ b/documentation/streams/developer-guide/processor-api.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="../../../23/streams/developer-guide/processor-api.html" -->
+<!--#include virtual="../../../24/streams/developer-guide/processor-api.html" -->
diff --git a/documentation/streams/developer-guide/running-app.html b/documentation/streams/developer-guide/running-app.html
index e86c05b..f075509 100644
--- a/documentation/streams/developer-guide/running-app.html
+++ b/documentation/streams/developer-guide/running-app.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="../../../23/streams/developer-guide/running-app.html" -->
+<!--#include virtual="../../../24/streams/developer-guide/running-app.html" -->
diff --git a/documentation/streams/developer-guide/security.html b/documentation/streams/developer-guide/security.html
index 5a8d730..3248051 100644
--- a/documentation/streams/developer-guide/security.html
+++ b/documentation/streams/developer-guide/security.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="../../../23/streams/developer-guide/security.html" -->
+<!--#include virtual="../../../24/streams/developer-guide/security.html" -->
diff --git a/documentation/streams/developer-guide/testing.html b/documentation/streams/developer-guide/testing.html
index 0561253..1d1ab28 100644
--- a/documentation/streams/developer-guide/testing.html
+++ b/documentation/streams/developer-guide/testing.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="../../../23/streams/developer-guide/testing.html" -->
+<!--#include virtual="../../../24/streams/developer-guide/testing.html" -->
diff --git a/documentation/streams/developer-guide/write-streams.html b/documentation/streams/developer-guide/write-streams.html
index 30cb66f..4ab155b 100644
--- a/documentation/streams/developer-guide/write-streams.html
+++ b/documentation/streams/developer-guide/write-streams.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="../../../23/streams/developer-guide/write-streams.html" -->
+<!--#include virtual="../../../24/streams/developer-guide/write-streams.html" -->
diff --git a/documentation/streams/index.html b/documentation/streams/index.html
index b13cbe0..0e6de48 100644
--- a/documentation/streams/index.html
+++ b/documentation/streams/index.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="../../23/streams/index.html" -->
+<!--#include virtual="../../24/streams/index.html" -->
diff --git a/documentation/streams/quickstart.html b/documentation/streams/quickstart.html
index 2ea2b6d..81c2df0 100644
--- a/documentation/streams/quickstart.html
+++ b/documentation/streams/quickstart.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="../../23/streams/quickstart.html" -->
+<!--#include virtual="../../24/streams/quickstart.html" -->
diff --git a/documentation/streams/upgrade-guide.html b/documentation/streams/upgrade-guide.html
index 7f96c51..37234dc 100644
--- a/documentation/streams/upgrade-guide.html
+++ b/documentation/streams/upgrade-guide.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="../../23/streams/upgrade-guide.html" -->
+<!--#include virtual="../../24/streams/upgrade-guide.html" -->
diff --git a/downloads.html b/downloads.html
index 0d94593..652b28c 100644
--- a/downloads.html
+++ b/downloads.html
@@ -5,12 +5,55 @@
 	<div class="right">
     <h1>Download</h1>
 
-    <p>2.3.1 is the latest release. The current stable version is 2.3.1.</p>
+    <p>2.4.0 is the latest release. The current stable version is 2.4.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://www.apache.org/dist/kafka/KEYS">KEYS</a>.
     </p>
 
+    <span id="2.4.0"></span>
+    <h3 class="download-version">2.4.0<a href="#2.4.0"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
+    <ul>
+        <li>
+            Released December 16, 2019
+        </li>
+        <li>
+            <a href="https://www.apache.org/dist/kafka/2.4.0/RELEASE_NOTES.html">Release Notes</a>
+        </li>
+        <li>
+            Source download: <a href="https://www.apache.org/dyn/closer.cgi?path=/kafka/2.4.0/kafka-2.4.0-src.tgz">kafka-2.4.0-src.tgz</a> (<a href="https://www.apache.org/dist/kafka/2.4.0/kafka-2.4.0-src.tgz.asc">asc</a>, <a href="https://www.apache.org/dist/kafka/2.4.0/kafka-2.4.0-src.tgz.sha512">sha512</a>)
+        </li>
+        <li>
+            Binary downloads:
+            <ul>
+                <li>Scala 2.11 &nbsp;- <a href="https://www.apache.org/dyn/closer.cgi?path=/kafka/2.4.0/kafka_2.11-2.4.0.tgz">kafka_2.11-2.4.0.tgz</a> (<a href="https://www.apache.org/dist/kafka/2.4.0/kafka_2.11-2.4.0.tgz.asc">asc</a>, <a href="https://www.apache.org/dist/kafka/2.4.0/kafka_2.11-2.4.0.tgz.sha512">sha512</a>)</li>
+                <li>Scala 2.12 &nbsp;- <a href="https://www.apache.org/dyn/closer.cgi?path=/kafka/2.4.0/kafka_2.12-2.4.0.tgz">kafka_2.12-2.4.0.tgz</a> (<a href="https://www.apache.org/dist/kafka/2.4.0/kafka_2.12-2.4.0.tgz.asc">asc</a>, <a href="https://www.apache.org/dist/kafka/2.4.0/kafka_2.12-2.4.0.tgz.sha512">sha512</a>)</li>
+                <li>Scala 2.13 &nbsp;- <a href="https://www.apache.org/dyn/closer.cgi?path=/kafka/2.4.0/kafka_2.13-2.4.0.tgz">kafka_2.13-2.4.0.tgz</a> (<a href="https://www.apache.org/dist/kafka/2.4.0/kafka_2.13-2.4.0.tgz.asc">asc</a>, <a href="https://www.apache.org/dist/kafka/2.4.0/kafka_2.13-2.4.0.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.12 is recommended).
+        </li>
+    </ul>
+
+    <p>
+        Kafka 2.4.0 includes a number of significant new features. Here is a summary of some notable changes:
+    </p>
+
+    <ul>
+        <li>Allow consumers to fetch from closest replica.</li>
+        <li>Support for incremental cooperative rebalancing to the consumer rebalance protocol.</li>
+        <li>MirrorMaker 2.0 (MM2), a new multi-cluster, cross-datacenter replication engine.</li>
+        <li>New Java authorizer Interface.</li>
+        <li>Support for non-key joining in KTable.</li>
+        <li>Administrative API for replica reassignment.</li>
+        <li>New Java authorizer Interface.</li>
+        <li>Support for non-key joining in KTable.</li>
+        <li>Administrative API for replica reassignment.</li>
+    </ul>
+    <p>
+        For more information, please read the detailed <a href="https://www.apache.org/dist/kafka/2.4.0/RELEASE_NOTES.html">Release Notes</a>.
+    </p>
+
     <span id="2.3.1"></span>
     <h3 class="download-version">2.3.1<a href="#2.3.1"><i class="fas fa-link " style="color:#053ce2"></i></a></h3>
     <ul>
@@ -109,16 +152,16 @@
             Released Jun 1, 2019
         </li>
         <li>
-            <a href="https://www.apache.org/dist/kafka/2.2.1/RELEASE_NOTES.html">Release Notes</a>
+            <a href="https://archive.apache.org/dist/kafka/2.2.1/RELEASE_NOTES.html">Release Notes</a>
         </li>
         <li>
-            Source download: <a href="https://www.apache.org/dyn/closer.cgi?path=/kafka/2.2.1/kafka-2.2.1-src.tgz">kafka-2.2.1-src.tgz</a> (<a href="https://www.apache.org/dist/kafka/2.2.1/kafka-2.2.1-src.tgz.asc">asc</a>, <a href="https://www.apache.org/dist/kafka/2.2.1/kafka-2.2.1-src.tgz.sha512">sha512</a>)
+            Source download: <a href="https://archive.apache.org/dist/kafka/2.2.1/kafka-2.2.1-src.tgz">kafka-2.2.1-src.tgz</a> (<a href="https://archive.apache.org/dist/kafka/2.2.1/kafka-2.2.1-src.tgz.asc">asc</a>, <a href="https://archive.apache.org/dist/kafka/2.2.1/kafka-2.2.1-src.tgz.sha512">sha512</a>)
         </li>
         <li>
             Binary downloads:
             <ul>
-                <li>Scala 2.11 &nbsp;- <a href="https://www.apache.org/dyn/closer.cgi?path=/kafka/2.2.1/kafka_2.11-2.2.1.tgz">kafka_2.11-2.2.1.tgz</a> (<a href="https://www.apache.org/dist/kafka/2.2.1/kafka_2.11-2.2.1.tgz.asc">asc</a>, <a href="https://www.apache.org/dist/kafka/2.2.1/kafka_2.11-2.2.1.tgz.sha512">sha512</a>)</li>
-                <li>Scala 2.12 &nbsp;- <a href="https://www.apache.org/dyn/closer.cgi?path=/kafka/2.2.1/kafka_2.12-2.2.1.tgz">kafka_2.12-2.2.1.tgz</a> (<a href="https://www.apache.org/dist/kafka/2.2.1/kafka_2.12-2.2.1.tgz.asc">asc</a>, <a href="https://www.apache.org/dist/kafka/2.2.1/kafka_2.12-2.2.1.tgz.sha512">sha512</a>)</li>
+                <li>Scala 2.11 &nbsp;- <a href="https://archive.apache.org/dist/kafka/2.2.1/kafka_2.11-2.2.1.tgz">kafka_2.11-2.2.1.tgz</a> (<a href="https://archive.apache.org/dist/kafka/2.2.1/kafka_2.11-2.2.1.tgz.asc">asc</a>, <a href="https://archive.apache.org/dist/kafka/2.2.1/kafka_2.11-2.2.1.tgz.sha512">sha512</a>)</li>
+                <li>Scala 2.12 &nbsp;- <a href="https://archive.apache.org/dist/kafka/2.2.1/kafka_2.12-2.2.1.tgz">kafka_2.12-2.2.1.tgz</a> (<a href="https://archive.apache.org/dist/kafka/2.2.1/kafka_2.12-2.2.1.tgz.asc">asc</a>, <a href="https://archive.apache.org/dist/kafka/2.2.1/kafka_2.12-2.2.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.12 is recommended).
         </li>
@@ -168,7 +211,7 @@
           <li>Metric improvements: All <code>-min</code>, <code>-avg</code> and <code>-max</code> metrics will now output <code>NaN</code> as default value</li>
         </ul>
         <p>
-            For more information, please read the detailed <a href="https://www.apache.org/dist/kafka/2.2.0/RELEASE_NOTES.html">Release Notes</a>.
+            For more information, please read the detailed <a href="https://archive.apache.org/dist/kafka/2.2.0/RELEASE_NOTES.html">Release Notes</a>.
         </p>
 
     <span id="2.1.1"></span>
@@ -178,16 +221,16 @@
                 Released Feb 15, 2019
             </li>
             <li>
-                <a href="https://www.apache.org/dist/kafka/2.1.1/RELEASE_NOTES.html">Release Notes</a>
+                <a href="https://archive.apache.org/dist/kafka/2.1.1/RELEASE_NOTES.html">Release Notes</a>
             </li>
             <li>
-                Source download: <a href="https://www.apache.org/dyn/closer.cgi?path=/kafka/2.1.1/kafka-2.1.1-src.tgz">kafka-2.1.1-src.tgz</a> (<a href="https://www.apache.org/dist/kafka/2.1.1/kafka-2.1.1-src.tgz.asc">asc</a>, <a href="https://www.apache.org/dist/kafka/2.1.1/kafka-2.1.1-src.tgz.sha512">sha512</a>)
+                Source download: <a href="https://archive.apache.org/dist/kafka/2.1.1/kafka-2.1.1-src.tgz">kafka-2.1.1-src.tgz</a> (<a href="https://archive.apache.org/dist/kafka/2.1.1/kafka-2.1.1-src.tgz.asc">asc</a>, <a href="https://archive.apache.org/dist/kafka/2.1.1/kafka-2.1.1-src.tgz.sha512">sha512</a>)
             </li>
             <li>
                 Binary downloads:
                 <ul>
-                    <li>Scala 2.11 &nbsp;- <a href="https://www.apache.org/dyn/closer.cgi?path=/kafka/2.1.1/kafka_2.11-2.1.1.tgz">kafka_2.11-2.1.1.tgz</a> (<a href="https://www.apache.org/dist/kafka/2.1.1/kafka_2.11-2.1.1.tgz.asc">asc</a>, <a href="https://www.apache.org/dist/kafka/2.1.1/kafka_2.11-2.1.1.tgz.sha512">sha512</a>)</li>
-                    <li>Scala 2.12 &nbsp;- <a href="https://www.apache.org/dyn/closer.cgi?path=/kafka/2.1.1/kafka_2.12-2.1.1.tgz">kafka_2.12-2.1.1.tgz</a> (<a href="https://www.apache.org/dist/kafka/2.1.1/kafka_2.12-2.1.1.tgz.asc">asc</a>, <a href="https://www.apache.org/dist/kafka/2.1.1/kafka_2.12-2.1.1.tgz.sha512">sha512</a>)</li>
+                    <li>Scala 2.11 &nbsp;- <a href="https://archive.apache.org/dist/kafka/2.1.1/kafka_2.11-2.1.1.tgz">kafka_2.11-2.1.1.tgz</a> (<a href="https://archive.apache.org/dist/kafka/2.1.1/kafka_2.11-2.1.1.tgz.asc">asc</a>, <a href="https://archive.apache.org/dist/kafka/2.1.1/kafka_2.11-2.1.1.tgz.sha512">sha512</a>)</li>
+                    <li>Scala 2.12 &nbsp;- <a href="https://archive.apache.org/dist/kafka/2.1.1/kafka_2.12-2.1.1.tgz">kafka_2.12-2.1.1.tgz</a> (<a href="https://archive.apache.org/dist/kafka/2.1.1/kafka_2.12-2.1.1.tgz.asc">asc</a>, <a href="https://archive.apache.org/dist/kafka/2.1.1/kafka_2.12-2.1.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.12 is recommended).
             </li>
diff --git a/index.html b/index.html
index ce108f6..d774994 100644
--- a/index.html
+++ b/index.html
@@ -26,6 +26,10 @@
 					<time>Apr 27 - Apr 28, 2020</time>
 				</article>
 				<article>
+					<h3><a href="https://kafka.apache.org/downloads#2.4.0">AK Release 2.4.0</a></h3>
+					<time>December 16, 2019</time>
+				</article>
+				<article>
 					<h3><a href="https://kafka.apache.org/downloads#2.2.2">AK Release 2.2.2</a></h3>
 					<time>December 1, 2019</time>
 				</article>
diff --git a/protocol.html b/protocol.html
index f356929..7f43da1 100644
--- a/protocol.html
+++ b/protocol.html
@@ -1,2 +1,2 @@
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="23/protocol.html" -->
+<!--#include virtual="24/protocol.html" -->
diff --git a/quickstart.html b/quickstart.html
index da9da0a..6d5aaff 100644
--- a/quickstart.html
+++ b/quickstart.html
@@ -5,7 +5,7 @@
   <div class="right">
     <h1>Quickstart</h1>
 <!-- should always link the the latest release's documentation -->
-    <!--#include virtual="23/quickstart.html" -->
+    <!--#include virtual="24/quickstart.html" -->
 <!--#include virtual="includes/_footer.htm" -->
 <script>
 // Show selected style on nav item
diff --git a/uses.html b/uses.html
index f826e33..a57da0b 100644
--- a/uses.html
+++ b/uses.html
@@ -6,7 +6,7 @@
 		<h1>Use cases</h1>
 
 <!-- should always link the the latest release's documentation -->
-<!--#include virtual="23/uses.html" -->
+<!--#include virtual="24/uses.html" -->
 
 <!--#include virtual="includes/_footer.htm" -->