blob: 57a9ed4701f3e3fba1c28c8d9672b0822b2711ad [file] [log] [blame]
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--#include virtual="../includes/_header.htm" -->
<!--#include virtual="../includes/_top.htm" -->
<div class="content documentation">
<!--#include virtual="../includes/_nav.htm" -->
<div class="right">
<!--#include virtual="../includes/_docs_banner.htm" -->
<h1>Documentation</h1>
<h3>Kafka 0.10.0</h3>
<p>
Prior releases: <a href="/07/documentation.html">0.7.x</a>, <a href="/08/documentation.html">0.8.0</a>, <a href="/081/documentation.html">0.8.1.X</a>, <a href="/082/documentation.html">0.8.2.X</a>, <a href="/090/documentation.html">0.9.0.X</a>.
</p>
<ul class="toc">
<li><a href="#gettingStarted">1. Getting Started</a>
<ul>
<li><a href="#introduction">1.1 Introduction</a>
<li><a href="#uses">1.2 Use Cases</a>
<li><a href="#quickstart">1.3 Quick Start</a>
<li><a href="#ecosystem">1.4 Ecosystem</a>
<li><a href="#upgrade">1.5 Upgrading</a>
</ul>
</li>
<li><a href="#api">2. APIs</a>
<ul>
<li><a href="#producerapi">2.1 Producer API</a>
<li><a href="#consumerapi">2.2 Consumer API</a>
<li><a href="#streamsapi">2.3 Streams API</a>
<li><a href="#connectapi">2.4 Connect API</a>
<li><a href="#legacyapis">2.5 Legacy APIs</a>
</ul>
</li>
<li><a href="#configuration">3. Configuration</a>
<ul>
<li><a href="#brokerconfigs">3.1 Broker Configs</a>
<li><a href="#producerconfigs">3.2 Producer Configs</a>
<li><a href="#consumerconfigs">3.3 Consumer Configs</a>
<ul>
<li><a href="#oldconsumerconfigs">3.3.1 Old Consumer Configs</a>
<li><a href="#newconsumerconfigs">3.3.2 New Consumer Configs</a>
</ul>
<li><a href="#connectconfigs">3.4 Kafka Connect Configs</a>
<li><a href="#streamsconfigs">3.5 Kafka Streams Configs</a>
</ul>
</li>
<li><a href="#design">4. Design</a>
<ul>
<li><a href="#majordesignelements">4.1 Motivation</a>
<li><a href="#persistence">4.2 Persistence</a>
<li><a href="#maximizingefficiency">4.3 Efficiency</a>
<li><a href="#theproducer">4.4 The Producer</a>
<li><a href="#theconsumer">4.5 The Consumer</a>
<li><a href="#semantics">4.6 Message Delivery Semantics</a>
<li><a href="#replication">4.7 Replication</a>
<li><a href="#compaction">4.8 Log Compaction</a>
<li><a href="#design_quotas">4.9 Quotas</a>
</ul>
</li>
<li><a href="#implementation">5. Implementation</a>
<ul>
<li><a href="#apidesign">5.1 API Design</a>
<li><a href="#networklayer">5.2 Network Layer</a>
<li><a href="#messages">5.3 Messages</a>
<li><a href="#messageformat">5.4 Message format</a>
<li><a href="#log">5.5 Log</a>
<li><a href="#distributionimpl">5.6 Distribution</a>
</ul>
</li>
<li><a href="#operations">6. Operations</a>
<ul>
<li><a href="#basic_ops">6.1 Basic Kafka Operations</a>
<ul>
<li><a href="#basic_ops_add_topic">Adding and removing topics</a>
<li><a href="#basic_ops_modify_topic">Modifying topics</a>
<li><a href="#basic_ops_restarting">Graceful shutdown</a>
<li><a href="#basic_ops_leader_balancing">Balancing leadership</a>
<li><a href="#basic_ops_consumer_lag">Checking consumer position</a>
<li><a href="#basic_ops_mirror_maker">Mirroring data between clusters</a>
<li><a href="#basic_ops_cluster_expansion">Expanding your cluster</a>
<li><a href="#basic_ops_decommissioning_brokers">Decommissioning brokers</a>
<li><a href="#basic_ops_increase_replication_factor">Increasing replication factor</a>
</ul>
<li><a href="#datacenters">6.2 Datacenters</a>
<li><a href="#config">6.3 Important Configs</a>
<ul>
<li><a href="#serverconfig">Important Server Configs</a>
<li><a href="#clientconfig">Important Client Configs</a>
<li><a href="#prodconfig">A Production Server Configs</a>
</ul>
<li><a href="#java">6.4 Java Version</a>
<li><a href="#hwandos">6.5 Hardware and OS</a>
<ul>
<li><a href="#os">OS</a>
<li><a href="#diskandfs">Disks and Filesystems</a>
<li><a href="#appvsosflush">Application vs OS Flush Management</a>
<li><a href="#linuxflush">Linux Flush Behavior</a>
<li><a href="#ext4">Ext4 Notes</a>
</ul>
<li><a href="#monitoring">6.6 Monitoring</a>
<li><a href="#zk">6.7 ZooKeeper</a>
<ul>
<li><a href="#zkversion">Stable Version</a>
<li><a href="#zkops">Operationalization</a>
</ul>
</ul>
</li>
<li><a href="#security">7. Security</a>
<ul>
<li><a href="#security_overview">7.1 Security Overview</a></li>
<li><a href="#security_ssl">7.2 Encryption and Authentication using SSL</a></li>
<li><a href="#security_sasl">7.3 Authentication using SASL</a></li>
<li><a href="#security_authz">7.4 Authorization and ACLs</a></li>
<li><a href="#security_rolling_upgrade">7.5 Incorporating Security Features in a Running Cluster</a></li>
<li><a href="#zk_authz">7.6 ZooKeeper Authentication</a></li>
<ul>
<li><a href="#zk_authz_new">New Clusters</a></li>
<li><a href="#zk_authz_migration">Migrating Clusters</a></li>
<li><a href="#zk_authz_ensemble">Migrating the ZooKeeper Ensemble</a></li>
</ul>
</ul>
</li>
<li><a href="#connect">8. Kafka Connect</a>
<ul>
<li><a href="#connect_overview">8.1 Overview</a></li>
<li><a href="#connect_user">8.2 User Guide</a></li>
<li><a href="#connect_development">8.3 Connector Development Guide</a></li>
</ul>
</li>
<li><a href="#streams">9. Kafka Streams</a>
<ul>
<li><a href="#streams_overview">9.1 Overview</a></li>
<li><a href="#streams_developer">9.2 Developer Guide</a></li>
<ul>
<li><a href="#streams_concepts">Core Concepts</a></li>
<li><a href="#streams_processor">Low-Level Processor API</a></li>
<li><a href="#streams_dsl">High-Level Streams DSL</a></li>
</ul>
</ul>
</li>
</ul>
<h2><a id="gettingStarted" href="#gettingStarted">1. Getting Started</a></h2>
<h3><a id="introduction" href="#introduction">1.1 Introduction</a></h3>
<!--#include virtual="introduction.html" -->
<h3><a id="uses" href="#uses">1.2 Use Cases</a></h3>
<!--#include virtual="uses.html" -->
<h3><a id="quickstart" href="#quickstart">1.3 Quick Start</a></h3>
<!--#include virtual="quickstart.html" -->
<h3><a id="ecosystem" href="#ecosystem">1.4 Ecosystem</a></h3>
<!--#include virtual="ecosystem.html" -->
<h3><a id="upgrade" href="#upgrade">1.5 Upgrading From Previous Versions</a></h3>
<!--#include virtual="upgrade.html" -->
<h2><a id="api" href="#api">2. APIs</a></h2>
<!--#include virtual="api.html" -->
<h2><a id="configuration" href="#configuration">3. Configuration</a></h2>
<!--#include virtual="configuration.html" -->
<h2><a id="design" href="#design">4. Design</a></h2>
<!--#include virtual="design.html" -->
<h2><a id="implementation" href="#implementation">5. Implementation</a></h2>
<!--#include virtual="implementation.html" -->
<h2><a id="operations" href="#operations">6. Operations</a></h2>
<!--#include virtual="ops.html" -->
<h2><a id="security" href="#security">7. Security</a></h2>
<!--#include virtual="security.html" -->
<h2><a id="connect" href="#connect">8. Kafka Connect</a></h2>
<!--#include virtual="connect.html" -->
<h2><a id="streams" href="#streams">9. Kafka Streams</a></h2>
<!--#include virtual="streams.html" -->
<!--#include virtual="../includes/_footer.htm" -->