Kafka集羣部分參數配置

Broker端參數

存儲信息相關配置

1.log.dirs:指定Broker須要使用的若干個文件目錄路徑,無默認值
2.log.dir:單路徑,對log.dirs參數的補充
生產環境只需設置log.dirs,多個路徑逗號分隔,如/home/kafka1,/home/kafka2,/home/kafka3,另外最好保證這些目錄掛載到不一樣的物理盤,這樣的好處是:
提高讀寫性能:多塊物理盤可同時讀寫數據
能實現故障轉移(Failover):Kafka1.1版本開始,壞掉的磁盤上的數據會自動轉移到其餘正常的磁盤上,並且Broker還能正常工做,1.1以前任何一塊磁盤壞掉,整個Broker進程就會關閉算法

Zookeeper相關配置

zookeepr.connect:單個Kafka集羣能夠配置爲zk1:2181,zk2:2181,zk3:2181,多個Kafka集羣使用同一套Zookeeper集羣能夠這樣配置zk1:2181,zk2:2181,zk3:2181/kafka1和zk1:2181,zk2:2181,zk3:2181/kafka2bootstrap

Broker鏈接相關配置

1.listeners:監聽器,告訴外部鏈接者要經過什麼協議訪問指定主機名和端口開放的Kafka服務,格式是[協議名]://[主機名]:[端口], [協議名]://[主機名]:[端口],協議好比PLAINTEXT表示明文傳輸,SSL表示使用SSL或TLS加密傳輸等,也能夠自定義協議名,好比CONTROLLER://localhost:9092,自定義協議還必須指定listener.security.portocol.map參數告訴底層協議
2.advertised.listeners:Broker用於對外發布的監聽器緩存

Topic管理相關配置

1.auto.create.topics.enable:是否容許自動建立Topic,建議false
2.unclean.leader.election.enable:Leader副本掛了以後,其餘數據落後的副本能不能競選Leader,建議false
3.auto.leader.rebalance.enable:是否容許Kafka按期對一些Topic分區進行Leader重選舉,,建議falseapp

數據留存相關配置

1.log.retention:控制一條消息數據被保存多長時間hour|minutes|ms,log.retention.hour=168表示默認保存7天的數據
2.log.retention.bytes:默認值-1,表示你想在這臺Broker上保存多少數據均可以
3.message.max.bytes:Broker可以處理的最大消息大小,默認值1000012,建議設置大一點jvm

Topic級別參數

Topic級別參數會覆蓋全局Broker參數的值
retention.ms
retention,bytes
max.message.bytes性能

有兩種方式設置Topic級別參數:建議第二種
建立Topic時進行設置加密

bin/kafka-topics.sh--bootstrap-serverlocalhost:9092--create--topictransaction--partitions1--replication-factor1--configretention.ms=15552000000--configmax.message.bytes=5242880

修改Topic時進行設置操作系統

bin/kafka-configs.sh--zookeeperlocalhost:2181--entity-typetopics--entity-nametransaction--alter--add-configmax.message.bytes=10485760

JVM參數

1.KAFKA_HEAP_OPTS:指定堆大小
2.KAFKA_JVM_PERFORMANCE_OPTS:指定GC參數
能夠在啓動Kafka Broker前先設置這兩個環境變量日誌

操做系統參數

1.文件描述符限制:一般設置成一個超大的值ulimit -n 1000000
2.文件系統類型:ext3/ext4/XFS/ZFS日誌型文件系統的選擇
3.Swappiness:建議配置成接近0的值如1
4.提交時間:向 Kafka 發送數據並非真要等數據被寫入磁盤纔會認爲成功,而是隻要數據被寫入到操做系統的頁緩存(Page Cache)上就能夠了,隨後操做系統根據 LRU 算法會按期將頁緩存上的「髒」數據落盤到物理磁盤上。這個按期就是由提交時間來肯定的,默認是 5 秒,可適當加大時間code

相關文章
相關標籤/搜索