一、配置文件位置
二、配置文件介紹
默認下:
- 9092 是處理消息隊列核心業務(客戶端與 broker 交互)的端口
- 9093 是集群內部控制器通信的端口
# 指定節點角色,這里同時作為 broker(消息代理)和 controller(控制器)
process.roles=broker,controller# 當前節點的唯一標識 ID
node.id=1# 控制器集群的投票節點列表,格式為 "nodeId@host:port",這里只有當前節點
controller.quorum.voters=1@localhost:9093
# 控制器集群的 bootstrap 服務器地址,用于節點發現控制器集群
controller.quorum.bootstrap.servers=localhost:9093# 節點監聽的網絡地址列表,PLAINTEXT 用于客戶端和 broker 間通信,CONTROLLER 用于控制器間通信
listeners=PLAINTEXT://127.0.0.1:9092,CONTROLLER://127.0.0.1:9093# broker 之間通信使用的監聽器名稱
inter.broker.listener.name=PLAINTEXT# 對外公布的監聽器地址(客戶端實際連接的地址)
advertised.listeners=PLAINTEXT://localhost:9092,CONTROLLER://localhost:9093# 指定用于控制器通信的監聽器名稱
controller.listener.names=CONTROLLER# 監聽器名稱與安全協議的映射關系,這里都使用 PLAINTEXT(明文傳輸)
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL# 處理網絡請求的線程數
num.network.threads=3# 處理 I/O 操作的線程數
num.io.threads=8# 套接字發送緩沖區大小(字節)
socket.send.buffer.bytes=102400# 套接字接收緩沖區大小(字節)
socket.receive.buffer.bytes=102400# 允許的最大套接字請求大小(字節)
socket.request.max.bytes=104857600# 日志和數據存儲目錄
log.dirs=D:/Kafka/kafka_2.13-4.1.0/logs# 新建主題時的默認分區數
num.partitions=1# 每個數據目錄用于日志恢復的線程數
num.recovery.threads.per.data.dir=1# 偏移量主題(__consumer_offsets)的副本因子
offsets.topic.replication.factor=1
# 消費者組協調器狀態主題的副本因子
share.coordinator.state.topic.replication.factor=1
# 消費者組協調器狀態主題的最小 ISR(同步副本)數量
share.coordinator.state.topic.min.isr=1
# 事務狀態日志的副本因子
transaction.state.log.replication.factor=1
# 事務狀態日志的最小 ISR 數量
transaction.state.log.min.isr=1# 日志保留時間(小時),超過此時間的日志會被刪除
log.retention.hours=168# 單個日志段的最大大小(字節),達到此大小后會創建新的日志段
log.segment.bytes=1073741824# 日志保留檢查的時間間隔(毫秒)
log.retention.check.interval.ms=300000
三、關鍵名詞
broker:Kafka 服務器實例,負責存儲消息和處理客戶端請求。
controller:集群管理者,協調分區主從切換和元數據管理。
topic:消息的邏輯分類,用于區分不同類型的消息流。
分區:topic 的物理拆分,實現消息并行存儲和處理。
生產者:向 Kafka topic 發送消息的客戶端應用。
消費者:從 Kafka topic 讀取消息的客戶端應用。其中,Topic + 分區(Partition)的組合可以唯一標識 Kafka 中的一個 “物理消息隊列”。
(配置文件中若選用默認的最大分區個數num.partitions=1,則可以簡單理解為Topic 唯一對應一個物理消息隊列)