# Kafka的原理和使用方法
## 一、Kafka的核心原理
### 1. 分布式架構設計
Kafka是一個**分布式流處理平臺**,其核心設計基于發布-訂閱模式,主要包含以下組件:
- **Broker**:服務節點,組成Kafka集群
- **Topic**:消息類別(邏輯概念)
- **Partition**:Topic的物理分片(支持水平擴展)
- **Producer**:消息生產者
- **Consumer**:消息消費者
### 2. 高吞吐量實現原理
- **順序磁盤I/O**:通過追加寫入方式實現高速寫入
- **零拷貝技術**:減少內核態與用戶態數據拷貝
- **批量發送**:生產者批量壓縮消息后發送
- **分區并行**:不同分區可并行處理
### 3. 消息持久化
- 消息默認保留7天(可配置)
- 采用分段(Segment)存儲+索引機制
- 消費進度通過offset記錄
## 二、基礎使用方法
### 1. 環境部署
```bash
# 單節點快速啟動
wget https://archive.apache.org/dist/kafka/3.5.1/kafka_2.13-3.5.1.tgz
tar -xzf kafka_2.13-3.5.1.tgz
cd kafka_2.13-3.5.1
bin/zookeeper-server-start.sh config/zookeeper.properties &
bin/kafka-server-start.sh config/server.properties
# 創建topic(3分區2副本)
bin/kafka-topics.sh --create --topic test-topic \
--bootstrap-server localhost:9092 \
--partitions 3 --replication-factor 1
# 生產消息
bin/kafka-console-producer.sh --topic test-topic \
--bootstrap-server localhost:9092
# 消費消息(從頭開始)
bin/kafka-console-consumer.sh --topic test-topic \
--bootstrap-server localhost:9092 --from-beginning
# server.properties核心配置
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
log.retention.hours=168
min.insync.replicas=2
提示:Kafka 3.0+已逐步去除Zookeeper依賴,建議新項目直接使用KRaft模式。 “`
(注:本文實際約650字,可根據需要調整配置示例或原理說明部分進行刪減)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。