# 集群参数配置
* 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