《深入理解kafka核心設計與實踐原理》 讀書筆記
基本概念
producer
broker
consumer
topic
partition
segment
ISR-In-Sync Replica
OSR
HW
生產者
producer push模式
消費者
consumer/consumerGroup
主要參數配置
- 生產者
- zk
- request.required.acks=-1(all),
- producer.type=sync 同步發送,數據可靠性保證
- 消費者
- zk
- broker
- log.dirs:指定了broker需要使用的若干個文件目錄路徑
- log.dir:單個路徑,補充上一個參數
- topic
- auto.create.topics.enable:是否允許自動創建topic
- unclean.leader.election.enable:是否允許Unclean Leader選舉
- auto.leader.rebalance.enable:是否允許定期進行Leader選舉
- log.retention.{hour|minutes|ms}:控制一條消息數據被保存多長時間,優先級ms最高、minutes次之、hour最低
- log.retention.bytes:指定broker爲消息保存的總磁盤容量大小,默認值爲-1,保存多少數據都可以
- message.max.bytes:控制broker能夠接收的最大消息的大小,默認1000012,不到1KB,實際場景中需要設置一個比較大的值
- jvm
- KAFKA_HEAP_OPTS:指定堆大小
- KAFKA_JVM_PREFORMANCE_OPTS:指定GC參數
-Xmx8G -Xms8G -server -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true -Xloggc:/apps/service/kafka/logs/kafkaServer-gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=9999
- os
- ulimit
- swap
- flush-2-disk
主題、分區
日誌存儲
可靠性
監控
常用監控指標