# Kafka的知識點有哪些
## 目錄
1. [Kafka概述](#1-kafka概述)
- 1.1 [基本概念](#11-基本概念)
- 1.2 [設計目標](#12-設計目標)
2. [核心架構](#2-核心架構)
- 2.1 [Broker](#21-broker)
- 2.2 [Topic與Partition](#22-topic與partition)
- 2.3 [Producer/Consumer](#23-producerconsumer)
3. [消息存儲機制](#3-消息存儲機制)
- 3.1 [日志分段存儲](#31-日志分段存儲)
- 3.2 [索引機制](#32-索引機制)
4. [高可用設計](#4-高可用設計)
- 4.1 [副本機制](#41-副本機制)
- 4.2 [ISR集合](#42-isr集合)
5. [性能優化技術](#5-性能優化技術)
- 5.1 [零拷貝](#51-零拷貝)
- 5.2 [批量發送](#52-批量發送)
6. [運維與監控](#6-運維與監控)
- 6.1 [常用命令](#61-常用命令)
- 6.2 [監控指標](#62-監控指標)
7. [應用場景](#7-應用場景)
8. [總結](#8-總結)
## 1. Kafka概述
### 1.1 基本概念
Apache Kafka是由LinkedIn開發并開源的高性能分布式消息系統,具有以下核心特性:
- **發布訂閱模型**:基于Topic的消息路由機制
- **高吞吐量**:單機可達百萬級TPS
- **持久化存儲**:消息持久化到磁盤
- **分布式架構**:支持水平擴展
### 1.2 設計目標
| 設計目標 | 實現方式 |
|---------|----------|
| 高吞吐 | 順序IO、批量處理 |
| 低延遲 | 零拷貝技術 |
| 高可用 | 多副本機制 |
## 2. 核心架構
### 2.1 Broker
```java
// 典型Broker配置示例
server.properties:
broker.id=1
listeners=PLNTEXT://:9092
log.dirs=/tmp/kafka-logs
生產者關鍵參數:
acks=1 # 消息確認級別
retries=3 # 重試次數
batch.size=16384 # 批量大小
/tmp/kafka-logs
└── test-topic-0
├── 00000000000000000000.log
├── 00000000000000000000.index
└── 00000000000000000000.timeindex
副本角色 | 特性 |
---|---|
Leader | 處理所有讀寫請求 |
Follower | 異步復制數據 |
graph LR
Leader-->|同步|Follower1
Leader-->|同步|Follower2
Leader-->|不同步|Follower3
傳統IO路徑:
磁盤文件 -> 內核緩沖區 -> 用戶緩沖區 -> Socket緩沖區 -> 網卡
零拷貝路徑:
磁盤文件 -> 內核緩沖區 -> 網卡
# 創建Topic
kafka-topics.sh --create --topic test --partitions 3 --replication-factor 2
# 查看消費偏移量
kafka-consumer-groups.sh --describe --group my-group
Kafka通過其獨特的設計實現了: - 高吞吐的消息處理 - 可靠的數據持久化 - 靈活的分布式擴展 “`
(注:實際文檔應包含更詳細的技術原理說明、參數配置示例、性能測試數據等內容以達到萬字規模,此處為結構示例)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。