Kafka配置文件詳解

Kafka有三個的重要配置文件:

  • Kafka主配置文件:server.properties

  • Kafka消息生產者:producer.properties

  • Kafka消息消費者:consumer.properties

Kafka主配置文件server.properties:

broker.id=1
#該節點是Kafka集羣中的唯一標識,必須爲整數
listeners=PLAINTEXT://sx-sj-mcn-out1-2.novalocal:9092
#sx-sj-mcn-out1-2.novalocal爲該服務器套接字的監聽地址,綁定host.name
#9092爲Kafka所監聽的端口,producer或者consumer與此端口建立連接
num.network.threads=3
#Kafka從網絡接收請求並向網絡發送響應的線程數,默認爲3,從網絡接收到的消息請求將存放在內存中,然後再寫入磁盤
num.io.threads=8
#Kafka磁盤I/O處理請求的線程數,默認爲8,消息請求從內存中寫入磁盤時所使用的線程數
socket.send.buffer.bytes=102400
#Kafka發送套接字的數據緩衝區大小,單位爲字節,大小爲100KB;1048576bytes=1024KB=1MB
socket.receive.buffer.bytes=102400
#Kafka接收套接字的數據緩衝區大小,單位爲字節,默認爲100KB
socket.request.max.bytes=104857600
#Kafka最大接受套接字請求的大小,設置該值是爲了對OOM保護,OOM稱之內存溢出;單位爲字節,默認爲100MB;104857600bytes=100MB
log.dirs=/application/kafka_2.12-2.2.1/kafka-logs/
#Kafka的數據持久化位置,支持分散存儲,存儲在不同的磁盤上,有助於提高讀寫性能,多個地址使用逗號分隔
num.partitions=1
#Topic在當前Kafka節點的分片數量,默認爲1
num.recovery.threads.per.data.dir=1
#Kafka默認日誌保留時間爲7天,此值爲Kafka日誌超時後的清理線程數,處了清理超時日誌外,還用來日誌恢復,如果日誌數據存儲位置在RAID中,建議增加該值,默認爲1
offsets.topic.replication.factor=1
#Topic副本因子偏移量
transaction.state.log.replication.factor=1
#副本因子事物狀態日誌數量
transaction.state.log.min.isr=1
#事物狀態日誌最小數量
#組元數據內部主題"_consumer_offsets"和"_transaction_state"的複製因子,對於開發測試之外的任何測試,建議使用大於1的值來確保可用性,比如3,其實這段我也沒明白什麼意思,官網翻譯。
log.flush.interval.messages=10000
log.flush.interval.ms=1000
#Kafka從網絡接收請求後會將該消息放在內存中,隨後寫入磁盤,那麼什麼時候會將消息從內存中寫入磁盤呢?有兩個配置來觸發寫入時間,分別爲消息數量限制和時間限制
#以上兩項第一項爲消息數量限制,當內存中保存消息的分片緩衝區達到10000條消息時,將自動觸發flush把內存中的消息寫入到磁盤。
#第二項爲時間限制,當內存中的消息在內存中保存超過1000毫秒,也就是爲一秒種,將自動觸發flush把內存中的消息寫入到磁盤,這是官方給的默認值
log.retention.hours=168
#日誌文件保留時間,超時後將被num.recovery.threads.per.data.dir進程清理,單位爲小時,默認爲7天
log.segment.bytes=1073741824
#單個日誌文件最大大小,單位爲字節,默認爲1GB,當單個日誌文件達到1GB之後,將自動新建一個日誌
log.retention.check.interval.ms=300000
#檢查單個日誌文件大小的間隔時間,如果單個日誌文件大於等於上面設置的值,將自動新建日誌,單位爲毫秒,默認爲300秒,300000ms=300s=5m
zookeeper.connect=10.150.55.94:2181
#指定連接ZooKeeper服務器的地址及端口,如果指定多個ZK集羣,需用逗號","來分隔各個ZK節點,使用該ZK節點用來存儲本機Kafka的狀態
zookeeper.connection.timeout.ms=6000
#Kafka連接到ZooKeeper節點的超時時間,單位爲毫秒,默認爲6秒;6000ms=6秒
group.initial.rebalance.delay.ms=0
#當有新成員加入Kafka集羣時,指定該值以獲得節點在集羣中的平衡,寫爲0是爲了測試中有更好的體驗,官方建議在生產環境中3秒更合適。單位爲微妙。

Kafka消息生產者producer.properties:

bootstrap.servers=10.150.55.94:9092
#指定broker節點的地址及端口,如果爲集羣,建議寫入集羣中的所有broker節點的IP:Port,逗號","分隔,如果只寫入了本機的地址及端口,如果本機的broker節點故障,那麼該producer生產的信息將無法發送到指定的Topic中
compression.type=none
#爲消息生產者所生成的所有數據指定編解碼器,默認爲none,代表不指定,可指定的值爲:none、				gzip、snappy、lz4、zstd
request.timeout.ms=10000
#producer消息生產者向Topic發送消息的超時時間,如果超過了該值將設置超時,單位爲毫秒
max.block.ms=10000
#Kafka的producer多長時間未發送成功,將被阻塞,單位爲毫秒

Kafka消息消費者consumer.properties:

zookeeper.connect=127.0.0.1:2181
#(必需)zookeeper連接服務器地址(集羣可寫多個)
zookeeper.connection.timeout.ms=6000
#zookeeper的session的過期時間
zookeeper.sync.time.ms=2000 
#指定多久消費者更新offset到zookeeper中
group.id=test-consumer-group
#(必需)consumer組id
consumer.timeout.ms=5000
#消費者超時
auto.commit.enable=true 
#自動向zookeeper提交offset信息
auto.commit.interval.ms=1000
#自動更新時間
consumer.id=xxx 
#當前consumer的標識
client.id=xxx 
#消費者客戶端編號,用於區分不同客戶端,默認客戶端程序自動產生
queued.max.message.chunks=50
#最大取多少塊緩存到消費者(默認10)
rebalance.max.retries=5
#當有新的consumer加入到group時,將會reblance.
fetch.min.bytes=655360
#獲取消息的最大尺寸,broker不會向consumer輸出大於此值得chunk
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章