# 集群參數配置
* Broker 端參數,AKA 靜態參數(Static Configs)
## Broker 端參數
### 與存儲相關的參數
* 需要配置存儲信息,i.e. Broker 使用哪些磁盤
* log.dirs
* Broker 需要使用的若干個文件目錄路徑
* log.dir
* 同上,表示單個目錄
* 將 log.dirs 中的目錄掛載到不同的物理磁盤
* 優勢
* 提升讀寫性能
* 實現故障轉移
### 與 ZK 相關的參數
* zookeeper.connect
### 與 Broker 連接相關的參數
* listeners
* advertised.listeners
* host.name/port
### 關于 Topic 管理的參數
* auto.create.topics.enable
* unclean.leader.election.enable
* auto.leader.rebalance.enable
### 關于數據保留的參數
* log.retention.{hours|minutes|ms}
* log.retention.bytes
* message.max.bytes
## Topic 參數
* Topic 級別參數會覆蓋全局 Broker 參數的值
* 每個 Topic 都能設置自己的參數值
* retention.ms
* 規定了該 Topic 消息被保存的時長
* retentionn.bytes
* 規定了為該 Topic 預留的磁盤空間
* max.message.bytes
* Broker 能夠正常接收 Topic 的最大消息大小
``` shell
bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic transaction --partitions 1 --replication-factor 1 --config retention.ms=15552000000 --config max.message.bytes=5242880
bin/kafka-configs.sh --zookeeper localhost:2181 --entity-type topics --entity-name transaction --alter --add-config max.message.bytes=10485760
```
*
## JVM 參數
* KAFKA_HEAP_OPTS:指定堆大小
* KAFKA_JVM_PERFORMANCE_OPTS:指定 GC 參數
## 操作系統參數
* 文件描述符限制
* ulimit -n
* 可以配置 `ulimit -n 1000000`
* 文件系統類型
* ZFS > XFS > ext4 > ext3
* Swappiness
* 設置為較小值可能更好,比如 1
* swap 直接設置為 0,當物理內存耗盡時,會直接觸發 OS OOM Killer 組件,隨機挑選進程 kill
* 如果 swap 設置較小的值,可以觀察到 Broker 性能急劇下降
* 提交時間
* AKA Flush 落盤時間
* 向 Kafka 發送數據,只要數據寫入到 OS 頁緩存(Page Cache)就可以認為是成功,而非寫入磁盤
* 隨后 OS 根據 LRU 將 Page Cache 上的臟數據落盤到物理磁盤
* 默認 5s
* 可以適當增加提交間隔來降低物理磁盤的寫操作
* 如果在頁緩存中的數據在寫入到磁盤前機器宕機了,數據就丟失了
* 但同時考慮到 Kafka 已經提供多副本機制,因此稍微拉大提交時間換取性能是合理的
- 概覽
- 入門
- 1. 消息引擎系統
- 2. Kafka 術語
- 3. 分布式流處理平臺
- 4. Kafka “發行版”
- 5. Kafka 版本號
- 基本使用
- 6. 生產集群部署
- 7. 集群參數配置
- 客戶端實踐與原理
- 9. Consumer 分區機制
- 10. Consumer 壓縮算法
- 11. 無消息丟失配置
- 12. 客戶端高級功能
- 13. Producer 管理 TCP
- 14. 冪等生產者和事務生產者
- 15. 消費者組
- 16. 位移主題
- 17. 消費者組重平衡(TODO)
- 18. 位移提交
- 19. CommitFailedException
- 20. 多線程開發者實例
- 21. Consumer 管理 TCP
- 22. 消費者組消費進度監控
- Kafka 內核
- 23. 副本機制
- 24. 請求處理
- 25. Rebalance 全流程
- 26. Kafka 控制器
- 27. 高水位和 Leader Epoch
- 管理與監控
- 28. Topic 管理
- 29. Kafka 動態配置
- 30. 重設消費者組位移
- 31. 工具腳本
- 32. KafkaAdminClient
- 33. 認證機制
- 34. 云下授權
- 35. 跨集群備份 MirrorMaker
- 36. 監控 Kafka
- 37. Kafka 監控框架
- 38. 調優 Kafka
- 39. 實時日志流處理平臺
- 流處理
- 40. Kafka Streams
- 41. Kafka Streams DSL
- 42. Kafka Streams 金融
- Q&A