配置存儲(chǔ)信息
配置日志落在哪些磁盤
-
log.dirs
支持配置多個(gè)峭咒,用逗號(hào)分隔 -
log.dir
補(bǔ)充log.dirs
只能配置一個(gè)税弃,一般不需要配置
zookeeper相關(guān)配置
配置使用哪個(gè)zookeeper
-
zookeeper.connect
支持配置多個(gè)凑队,例如 zk1:2181,zk2:2181。
可以讓多個(gè)kafka集群使用一個(gè)zookeeper集群,在zookeeper.connect配置后面加上chroot
例如
zookeeper.connect=zk1:2181,zk2:2181/kafka1
注意西壮,只需要在最后面追加一個(gè)/chroot即可
鏈接相關(guān)的配置
-
listeners
監(jiān)聽器,其實(shí)就是告訴broker使用什么協(xié)議對(duì)外提供服務(wù) -
advertised.listeners
這組監(jiān)聽器是broker對(duì)外發(fā)布的
具體配置格式協(xié)議名稱,主機(jī)名稱, 端口號(hào)
寫法 protocol://hostname:port
- protocol
- PLAINTEXT 明文傳輸
- SSL 使用tls加密傳輸
- 也可以是自定義的協(xié)議名稱做修, 一旦使用自定義名稱需要配置
listener.security.protocol.map
參數(shù)來告訴broker使用了那種安全協(xié)議抡草。例如
# 表示CONTROLLER使用明文不加密傳輸數(shù)據(jù)
listener.security.protocol.map=CONTROLLER:PLAINTEXT
- hostname
如果不指定饰及,則使用java.net.InetAddress.getCanonicalHostName()
獲取康震,一般是系統(tǒng)的hostname
topic管理相關(guān)參數(shù)
-
auto.create.topics.enable
是否允許自動(dòng)創(chuàng)建topic
最好設(shè)置成false
, -
unclean.leader.election.enable
是否允許 Unclean Leader選舉
最好設(shè)置成false
,防止出現(xiàn)數(shù)據(jù)落后的副本選舉稱Leader導(dǎo)致數(shù)據(jù)丟失問題 -
auto.leader.rebalance.enable
是否允許定期進(jìn)行Leader選舉
最好設(shè)置成false
, 防止出現(xiàn)定期選舉影響吞吐量
這個(gè)是broker的全局配置瘫镇,也可以在創(chuàng)建topic的時(shí)候 指定每個(gè)topic的配置答姥,默認(rèn)topic的配置覆蓋broker的配置铣除。
數(shù)據(jù)留存方面
-
log.retention.{hour|minutes|ms}
控制一條消息的最大保存時(shí)間鹦付,優(yōu)先級(jí)ms
>minutes
>hour
-
log.retention.bytes
指定broker的消息保存總磁盤容量大小,-1 表示不限制 -
message.max.bytes
控制broker接收的每條消息最大的大小郎嫁,默認(rèn)不到1m大小,可以適當(dāng)?shù)脑O(shè)計(jì)大點(diǎn)
JVM相關(guān)配置
kafka使用的scale編寫的泽铛,最終是通過jvm運(yùn)行辑鲤,所以需要設(shè)置jvm參數(shù)對(duì)kafka調(diào)優(yōu)。kafka啟動(dòng)的時(shí)候會(huì)讀取兩個(gè)環(huán)境變量
-
KAFKA_HEAP_OPTS
: 指定堆大小 推薦6GB-Xms6g -Xmx6g
-
KAFKA_JVM_PREFORMANCE_OPTS
: 指定GC參數(shù)
-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcureent -Djava.awt.headless=true
操作系統(tǒng)參數(shù)
kafka并不需要設(shè)置太多的OS參數(shù)月褥,通常需要關(guān)注下面幾個(gè):
- 文件描述符限制
文件描述符系統(tǒng)資源并不像我們相信那樣昂貴弛随,通常設(shè)置成一個(gè)超大的值是合理的做法,太小會(huì)經(jīng)骋ㄍ福看到Too many open files
的錯(cuò)誤。建議 ulimit -n 1000000