2017-02-10 11:12:50 +08:00
|
|
|
<!--
|
|
|
|
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.
|
|
|
|
-->
|
|
|
|
|
|
|
|
<script><!--#include virtual="js/templateData.js" --></script>
|
|
|
|
|
|
|
|
<script id="toc-template" type="text/x-handlebars-template">
|
|
|
|
|
|
|
|
<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>
|
2025-03-09 08:55:50 +08:00
|
|
|
<li><a href="#zk2kraft-summary">1.6 KRaft vs ZooKeeper</a>
|
2025-03-12 09:38:37 +08:00
|
|
|
<li><a href="#compatibility-summary">1.7 Compatibility</a>
|
|
|
|
<li><a href="#docker">1.8 Docker</a>
|
2017-02-10 11:12:50 +08:00
|
|
|
</ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
|
2017-02-10 11:12:50 +08:00
|
|
|
<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>
|
2025-06-03 20:23:11 +08:00
|
|
|
<li><a href="#shareconsumerapi">2.3 Share Consumer API (Preview)</a>
|
|
|
|
<li><a href="#streamsapi">2.4 Streams API</a>
|
|
|
|
<li><a href="#connectapi">2.5 Connect API</a>
|
|
|
|
<li><a href="#adminapi">2.6 Admin API</a>
|
2017-02-10 11:12:50 +08:00
|
|
|
</ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
|
2017-02-10 11:12:50 +08:00
|
|
|
<li><a href="#configuration">3. Configuration</a>
|
|
|
|
<ul>
|
|
|
|
<li><a href="#brokerconfigs">3.1 Broker Configs</a>
|
2017-07-19 21:25:02 +08:00
|
|
|
<li><a href="#topicconfigs">3.2 Topic Configs</a>
|
2025-06-03 20:23:11 +08:00
|
|
|
<li><a href="#groupconfigs">3.3 Group Configs</a></li>
|
|
|
|
<li><a href="#producerconfigs">3.4 Producer Configs</a>
|
|
|
|
<li><a href="#consumerconfigs">3.5 Consumer Configs</a>
|
|
|
|
<li><a href="#connectconfigs">3.6 Kafka Connect Configs</a>
|
2022-02-22 10:54:53 +08:00
|
|
|
<ul>
|
|
|
|
<li><a href="#sourceconnectconfigs">Source Connector Configs</a>
|
|
|
|
<li><a href="#sinkconnectconfigs">Sink Connector Configs</a>
|
|
|
|
</ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
|
2025-06-03 20:23:11 +08:00
|
|
|
<li><a href="#streamsconfigs">3.7 Kafka Streams Configs</a>
|
|
|
|
<li><a href="#adminclientconfigs">3.8 AdminClient Configs</a>
|
|
|
|
<li><a href="#mirrormakerconfigs">3.9 MirrorMaker Configs</a>
|
|
|
|
<li><a href="#systemproperties">3.10 System Properties</a>
|
|
|
|
<li><a href="#tieredstorageconfigs">3.11 Tiered Storage Configs</a>
|
|
|
|
<li><a href="#config_providers">3.12 Configuration Providers</a>
|
2024-07-30 20:46:00 +08:00
|
|
|
<ul>
|
|
|
|
<li><a href="#using_config_providers">Using Configuration Providers</a>
|
|
|
|
<li><a href="#directory_config_provider">DirectoryConfigProvider</a>
|
|
|
|
<li><a href="#env_var_config_provider">EnvVarConfigProvider</a>
|
|
|
|
<li><a href="#file_config_provider">FileConfigProvider</a>
|
|
|
|
<li><a href="#ref_config_provider">Example: Referencing Files</a>
|
|
|
|
</ul>
|
2017-02-10 11:12:50 +08:00
|
|
|
</ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
|
2017-02-10 11:12:50 +08:00
|
|
|
<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>
|
2025-01-10 17:53:51 +08:00
|
|
|
<li><a href="#usingtransactions">4.7 Using Transactions</a>
|
2025-06-03 20:23:11 +08:00
|
|
|
<li><a href="#sharegroups">4.8 Share Groups</a>
|
|
|
|
<li><a href="#replication">4.9 Replication</a>
|
|
|
|
<li><a href="#compaction">4.10 Log Compaction</a>
|
|
|
|
<li><a href="#design_quotas">4.11 Quotas</a>
|
2017-02-10 11:12:50 +08:00
|
|
|
</ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
|
2017-02-10 11:12:50 +08:00
|
|
|
<li><a href="#implementation">5. Implementation</a>
|
|
|
|
<ul>
|
2017-06-22 20:42:32 +08:00
|
|
|
<li><a href="#networklayer">5.1 Network Layer</a>
|
|
|
|
<li><a href="#messages">5.2 Messages</a>
|
|
|
|
<li><a href="#messageformat">5.3 Message format</a>
|
|
|
|
<li><a href="#log">5.4 Log</a>
|
|
|
|
<li><a href="#distributionimpl">5.5 Distribution</a>
|
2017-02-10 11:12:50 +08:00
|
|
|
</ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
|
2017-02-10 11:12:50 +08:00
|
|
|
<li><a href="#operations">6. Operations</a>
|
|
|
|
<ul>
|
|
|
|
<li><a href="#basic_ops">6.1 Basic Kafka Operations</a>
|
|
|
|
<ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
<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>
|
2025-06-03 20:23:11 +08:00
|
|
|
<li><a href="#basic_ops_racks">Balancing replicas across racks</a>
|
2024-07-30 20:46:00 +08:00
|
|
|
<li><a href="#basic_ops_mirror_maker">Mirroring data between clusters</a>
|
|
|
|
<li><a href="#basic_ops_consumer_lag">Checking consumer position</a>
|
2025-06-03 20:23:11 +08:00
|
|
|
<li><a href="#basic_ops_groups">Managing groups</a>
|
|
|
|
<li><a href="#basic_ops_consumer_group">Managing consumer groups</a>
|
|
|
|
<li><a href="#basic_ops_share_group">Managing share groups</a>
|
2024-07-30 20:46:00 +08:00
|
|
|
<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>
|
2025-06-03 20:23:11 +08:00
|
|
|
<li><a href="#rep-throttle">Limiting bandwidth usage during data migration</a>
|
2024-07-30 20:46:00 +08:00
|
|
|
<li><a href="#quotas">Setting quotas</a>
|
2017-02-10 11:12:50 +08:00
|
|
|
</ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
|
|
|
|
<li><a href="#datacenters">6.2 Datacenters</a>
|
2023-12-05 05:06:49 +08:00
|
|
|
<li><a href="#georeplication">6.3 Geo-Replication (Cross-Cluster Data Mirroring)</a>
|
2021-01-28 00:51:34 +08:00
|
|
|
<ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
<li><a href="#georeplication-overview">Geo-Replication Overview</a>
|
|
|
|
<li><a href="#georeplication-flows">What Are Replication Flows</a>
|
|
|
|
<li><a href="#georeplication-mirrormaker">Configuring Geo-Replication</a>
|
|
|
|
<li><a href="#georeplication-starting">Starting Geo-Replication</a>
|
|
|
|
<li><a href="#georeplication-stopping">Stopping Geo-Replication</a>
|
|
|
|
<li><a href="#georeplication-apply-config-changes">Applying Configuration Changes</a>
|
|
|
|
<li><a href="#georeplication-monitoring">Monitoring Geo-Replication</a>
|
2021-01-28 00:51:34 +08:00
|
|
|
</ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
|
2023-12-05 05:06:49 +08:00
|
|
|
<li><a href="#multitenancy">6.4 Multi-Tenancy</a>
|
2021-03-04 23:47:48 +08:00
|
|
|
<ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
<li><a href="#multitenancy-overview">Multi-Tenancy Overview</a>
|
|
|
|
<li><a href="#multitenancy-topic-naming">Creating User Spaces (Namespaces)</a>
|
|
|
|
<li><a href="#multitenancy-topic-configs">Configuring Topics</a>
|
|
|
|
<li><a href="#multitenancy-security">Securing Clusters and Topics</a>
|
|
|
|
<li><a href="#multitenancy-isolation">Isolating Tenants</a>
|
|
|
|
<li><a href="#multitenancy-monitoring">Monitoring and Metering</a>
|
|
|
|
<li><a href="#multitenancy-georeplication">Multi-Tenancy and Geo-Replication</a>
|
|
|
|
<li><a href="#multitenancy-more">Further considerations</a>
|
2021-03-04 23:47:48 +08:00
|
|
|
</ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
|
2024-11-26 01:58:48 +08:00
|
|
|
<li><a href="#java">6.5 Java Version</a>
|
|
|
|
<li><a href="#hwandos">6.6 Hardware and OS</a>
|
2017-02-10 11:12:50 +08:00
|
|
|
<ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
<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="#filesystems">Filesystem Selection</a>
|
|
|
|
<li><a href="#replace_disk">Replace KRaft Controller Disk</a>
|
2017-02-10 11:12:50 +08:00
|
|
|
</ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
|
2024-11-26 01:58:48 +08:00
|
|
|
<li><a href="#monitoring">6.7 Monitoring</a>
|
2018-11-28 14:43:26 +08:00
|
|
|
<ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
<li><a href="#remote_jmx">Security Considerations for Remote Monitoring using JMX</a>
|
|
|
|
<li><a href="#tiered_storage_monitoring">Tiered Storage Monitoring</a>
|
|
|
|
<li><a href="#kraft_monitoring">KRaft Monitoring</a>
|
|
|
|
<li><a href="#selector_monitoring">Selector Monitoring</a>
|
|
|
|
<li><a href="#common_node_monitoring">Common Node Monitoring</a>
|
|
|
|
<li><a href="#producer_monitoring">Producer Monitoring</a>
|
|
|
|
<li><a href="#consumer_monitoring">Consumer Monitoring</a>
|
|
|
|
<li><a href="#connect_monitoring">Connect Monitoring</a>
|
|
|
|
<li><a href="#kafka_streams_monitoring">Streams Monitoring</a>
|
|
|
|
<li><a href="#others_monitoring">Others</a>
|
2018-11-28 14:43:26 +08:00
|
|
|
</ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
|
2024-11-26 01:58:48 +08:00
|
|
|
<li><a href="#kraft">6.8 KRaft</a>
|
2022-10-12 00:44:39 +08:00
|
|
|
<ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
<li><a href="#kraft_config">Configuration</a>
|
|
|
|
<li><a href="#kraft_storage">Storage Tool</a>
|
|
|
|
<li><a href="#kraft_debug">Debugging</a>
|
|
|
|
<li><a href="#kraft_deployment">Deploying Considerations</a>
|
|
|
|
<li><a href="#kraft_zk_migration">ZooKeeper to KRaft Migration</a>
|
2022-10-12 00:44:39 +08:00
|
|
|
</ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
|
2024-11-26 01:58:48 +08:00
|
|
|
<li><a href="#tiered_storage">6.9 Tiered Storage</a>
|
2023-09-14 20:21:00 +08:00
|
|
|
<ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
<li><a href="#tiered_storage_overview">Tiered Storage Overview</a>
|
|
|
|
<li><a href="#tiered_storage_config">Configuration</a>
|
|
|
|
<li><a href="#tiered_storage_config_ex">Quick Start Example</a>
|
|
|
|
<li><a href="#tiered_storage_limitation">Limitations</a>
|
2023-09-14 20:21:00 +08:00
|
|
|
</ul>
|
2025-03-05 00:22:07 +08:00
|
|
|
<li><a href="#consumer_rebalance_protocol">6.10 Consumer Rebalance Protocol</a>
|
|
|
|
<li><a href="#transaction_protocol">6.11 Transaction Protocol</a>
|
|
|
|
<li><a href="#eligible_leader_replicas">6.12 Eligible Leader Replicas</a>
|
2017-02-10 11:12:50 +08:00
|
|
|
</ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
|
2017-02-10 11:12:50 +08:00
|
|
|
<li><a href="#security">7. Security</a>
|
|
|
|
<ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
<li><a href="#security_overview">7.1 Security Overview</a>
|
|
|
|
<li><a href="#listener_configuration">7.2 Listener Configuration</a>
|
|
|
|
<li><a href="#security_ssl">7.3 Encryption and Authentication using SSL</a>
|
|
|
|
<li><a href="#security_sasl">7.4 Authentication using SASL</a>
|
|
|
|
<li><a href="#security_authz">7.5 Authorization and ACLs</a>
|
|
|
|
<li><a href="#security_rolling_upgrade">7.6 Incorporating Security Features in a Running Cluster</a>
|
2017-02-10 11:12:50 +08:00
|
|
|
</ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
|
2017-02-10 11:12:50 +08:00
|
|
|
<li><a href="#connect">8. Kafka Connect</a>
|
|
|
|
<ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
<li><a href="#connect_overview">8.1 Overview</a>
|
2023-12-05 05:06:49 +08:00
|
|
|
<li><a href="#connect_user">8.2 User Guide</a>
|
2024-07-30 20:46:00 +08:00
|
|
|
<ul>
|
|
|
|
<li><a href="#connect_running">Running Kafka Connect</a>
|
|
|
|
<li><a href="#connect_configuring">Configuring Connectors</a>
|
|
|
|
<li><a href="#connect_transforms">Transformations</a>
|
|
|
|
<li><a href="#connect_rest">REST API</a>
|
|
|
|
<li><a href="#connect_errorreporting">Error Reporting in Connect</a>
|
|
|
|
<li><a href="#connect_exactlyonce">Exactly-once support</a>
|
|
|
|
<li><a href="#connect_plugindiscovery">Plugin Discovery</a>
|
|
|
|
</ul>
|
|
|
|
|
2023-12-05 05:06:49 +08:00
|
|
|
<li><a href="#connect_development">8.3 Connector Development Guide</a>
|
2024-07-30 20:46:00 +08:00
|
|
|
<ul>
|
|
|
|
<li><a href="#connect_concepts">Core Concepts and APIs</a>
|
|
|
|
<li><a href="#connect_developing">Developing a Simple Connector</a>
|
|
|
|
<li><a href="#connect_dynamicio">Dynamic Input/Output Streams</a>
|
|
|
|
<li><a href="#connect_configs">Configuration Validation</a>
|
|
|
|
<li><a href="#connect_schemas">Working with Schemas</a>
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
<li><a href="#connect_administration">8.4 Administration</a>
|
2017-02-10 11:12:50 +08:00
|
|
|
</ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
|
2024-09-29 03:42:59 +08:00
|
|
|
<li><a href="#streams">9. Kafka Streams</a>
|
2017-07-26 02:34:16 +08:00
|
|
|
<ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
<li><a href="/{{version}}/documentation/streams/quickstart">9.1 Play with a Streams Application</a>
|
|
|
|
<li><a href="/{{version}}/documentation/streams/tutorial">9.2 Write your own Streams Applications</a>
|
|
|
|
<li><a href="/{{version}}/documentation/streams/developer-guide">9.3 Developer Manual</a>
|
|
|
|
<li><a href="/{{version}}/documentation/streams/core-concepts">9.4 Core Concepts</a>
|
|
|
|
<li><a href="/{{version}}/documentation/streams/architecture">9.5 Architecture</a>
|
|
|
|
<li><a href="/{{version}}/documentation/streams/upgrade-guide">9.6 Upgrade Guide</a>
|
2017-07-26 02:34:16 +08:00
|
|
|
</ul>
|
2024-07-30 20:46:00 +08:00
|
|
|
|
2017-02-10 11:12:50 +08:00
|
|
|
</ul>
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
2017-02-16 05:17:29 +08:00
|
|
|
<div class="p-toc"></div>
|