Kafka集羣參數介紹

Kafka版本

2.7.0

Kafka Server配置參數

listeners

格式:協議名稱://主機名:端口號
告訴外部連接者要通過什麼協議訪問指定主機名和端口開放的 Kafka 服務。

advertised.listeners

格式:協議名稱://主機名:端口號
區別於listeners,表明這個broker是用於對外發布的。

auto.create.topics.enable

默認值:true
是否允許自動創建topic,即當生產者或消費者指定的Topic不存在時,是否允許自動創建。爲了命名規範,應考慮將其設置爲false。

unclean.leader.election.enable

默認值:false
是否允許不在ISR集合中的副本參與leader選舉,爲了防止數據丟失,應設爲false。據說這個默認值在有些版本的Kafka中不一樣,需要額外關注下。

auto.leader.rebalance.enable

默認值:true
這個配置與broker的負載均衡有關。若broker故障無法對外提供服務,則該broker上的分區將轉移到其他可用的broker上,該分區的leader副本也隨之轉移。當一臺broker的leader副本過多,將導致其壓力過大,因此Kafka默認當其leader副本超過指定的比例leader.imbalance.per.broker.percentage且auto.leader.rebalance.enable爲true時,將觸發換leader的操作。因爲換leader成本較高,推薦將其設置爲false。

log.retention.hoursminutes|ms

默認值:168小時即一週
指定數據留存時間。從優先級上來說 ms 設置最高、minutes 次之、hours 最低。

log.retention.bytes

默認值:1073741824即1GB
指定Broker爲消息保存的總磁盤容量大小。

num.partitions

默認值:1
新建topic默認的分區數量。

zookeeper.connect

zookeeper連接字符串。格式形如:zk1:2181,zk2:2181,zk3:2181或zk1:2181,zk2:2181,zk3:2181/kafka1(kafka1爲chroot字符串,用於標識kafka集羣)

Topic參數

Topic參數會覆蓋Kafka默認參數,用於根據實際業務進行調整。

創建topic時添加設置

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

修改topic

bin/kafka-configs.sh --zookeeper localhost:2181 --entity-type topics --entity-name transaction --alter --add-config max.message.bytes=10485760

retention.ms

默認值:604800000ms即7天
topic消息保存時長。

retention.bytes

默認值:1073741824byte即1GB
topic消息總磁盤空間。

compression.type

默認值:producer
topic級別的壓縮類型,允許的壓縮算法爲gzipsnappylz4zstd,此外也允許不壓縮uncompressed或保留生產者的壓縮格式producer

JVM 參數(Java8)

推薦使用Java8及以上的JDK;內存推薦設置爲6g;建議使用G1垃圾回收器,因爲其性能更好,能使full gc較少。

export KAFKA_HEAP_OPTS=--Xms6g --Xmx6g
export KAFKA_JVM_PERFORMANCE_OPTS= -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -Djava.awt.headless=true
bin/kafka-server-start.sh config/server.properties
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章