<!--#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.8.2</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>.
		</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><a href="#api">2. API</a>
              <ul>
                  <li><a href="#producerapi">2.1 Producer API</a>
                  <li><a href="#highlevelconsumerapi">2.2 High Level Consumer API</a>
                  <li><a href="#simpleconsumerapi">2.3 Simple Consumer API</a>
                  <li><a href="#kafkahadoopconsumerapi">2.4 Kafka Hadoop Consumer API</a>
              </ul>
        <li><a href="#configuration">3. Configuration</a>
            <ul>
                 <li><a href="#brokerconfigs">3.1 Broker Configs</a>
                 <li><a href="#consumerconfigs">3.2 Consumer Configs</a>
                 <li><a href="#producerconfigs">3.3 Producer Configs</a>
    			 <li><a href="#newproducerconfigs">3.4 New Producer Configs</a>
            </ul>
        <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>
            </ul>
        <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><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>
    </ul>

    <h2><a id="gettingStarted">1. Getting Started</a></h2>
    <!--#include virtual="introduction.html" -->
    <!--#include virtual="uses.html" -->
    <!--#include virtual="quickstart.html" -->
    <!--#include virtual="ecosystem.html" -->
    <!--#include virtual="upgrade.html" -->

    <h2><a id="api">2. API</a></h2>

    <!--#include virtual="api.html" -->

    <h2><a id="configuration">3. Configuration</a></h2>

    <!--#include virtual="configuration.html" -->

    <h2><a id="design">4. Design</a></h2>

    <!--#include virtual="design.html" -->

    <h2><a id="implementation">5. Implementation</a></h2>

    <!--#include virtual="implementation.html" -->

    <h2><a id="operations">6. Operations</a></h2>

    <!--#include virtual="ops.html" -->

<!--#include virtual="../includes/_footer.htm" -->
