Kafka中Topic級別配置


一、Kafka中topic級別配置

1、Topic級別配置

  配置topic級別參數時,相同(參數)屬性topic級別會覆蓋全局的,否則默認為全局配置屬性值。

  創建topic參數可以設置一個或多個--config "Property(屬性)",下面是創建一個topic名稱為"my-topic"例子,它設置了2個參數max message size 和 flush rate.

(A)創建topic時配置參數

bin/kafka-topics.sh --zookeeper 192.168.2.225:2183/config/mobile/mq/mafka02 --create --topic my-topic --partitions 1   --replication-factor 1 
--config max.message.bytes=64000 --config flush.messages=1

(B)修改topic時配置參數

覆蓋已經有topic參數,下面例子修改"my-topic"的max message屬性

bin/kafka-topics.sh --zookeeper192.168.2.225:2183/config/mobile/mq/mafka02  --alter --topic my-topic  --config max.message.bytes=128000 

(C)刪除topic級別配置參數

bin/kafka-topics.sh --zookeeper192.168.2.225:2183/config/mobile/mq/mafka02  --alter --topic my-topic  --delete-config max.message.bytes

:配置的kafka集群的根目錄為/config/mobile/mq/mafka02,因此所有節點信息都在此目錄下。

二、Topic級別配置屬性表

Property(屬性)

Default(默認值)

Server Default Property(server.properties)

說明(解釋)

cleanup.policy

delete

log.cleanup.policy

日志清理策略選擇有:deletecompact主要針對過期數據的處理,或是日志文件達到限制的額度,會被  topic創建時的指定參數覆蓋

delete.retention.ms

86400000 (24 hours)

log.cleaner.delete.retention.ms

對於壓縮的日志保留的最長時間,也是客戶端消費消息的最長時間,同log.retention.minutes的區別在於一個控制未壓縮數據,一個控制壓縮后的數據。會被topic創建時的指定參數覆蓋

flush.messages

None

log.flush.interval.messages

log文件”sync”到磁盤之前累積的消息條數,因為磁盤IO操作是一個慢操作,但又是一個數據可靠性"的必要手段,所以此參數的設置,需要在"數據可靠性""性能"之間做必要的權衡.如果此值過大,將會導致每次"fsync"的時間較長(IO阻塞),如果此值過小,將會導致"fsync"的次數較多,這也意味着整體的client請求有一定的延遲.物理server故障,將會導致沒有fsync的消息丟失.

flush.ms

None

log.flush.interval.ms

僅僅通過interval來控制消息的磁盤寫入時機,是不足的.此參數用於控制"fsync"的時間間隔,如果消息量始終沒有達到閥值,但是離上一次磁盤同步的時間間隔達到閥值,也將觸發.

index.interval.bytes

4096

log.index.interval.bytes

當執行一個fetch操作后,需要一定的空間來掃描最近的offset大小,設置越大,代表掃描速度越快,但是也更好內存,一般情況下不需要搭理這個參數

message.max.bytes

1,000,000

message.max.bytes

表示消息的最大大小,單位是字節

min.cleanable.dirty.ratio

0.5

log.cleaner.min.cleanable.ratio

日志清理的頻率控制,越大意味着更高效的清理,同時會存在一些空間上的浪費,會被topic創建時的指定參數覆蓋

retention.bytes

None

log.retention.bytes

topic每個分區的最大文件大小,一個topic的大小限制  = 分區數*log.retention.bytes-1沒有大小限log.retention.byteslog.retention.minutes任意一個達到要求,都會執行刪除,會被topic創建時的指定參數覆蓋

retention.ms

None

log.retention.minutes

數據存儲的最大時間超過這個時間會根據log.cleanup.policy設置的策略處理數據,也就是消費端能夠多久去消費數據

log.retention.byteslog.retention.minutes達到要求,都會執行刪除,會被topic創建時的指定參數覆蓋

segment.bytes

1 GB

log.segment.bytes

topic的分區是以一堆segment文件存儲的,這個控制每個segment的大小,會被topic創建時的指定參數覆蓋

segment.index.bytes

10 MB

log.index.size.max.bytes

對於segment日志的索引文件大小限制,會被topic創建時的指定參數覆蓋

log.roll.hours

7 days

log.roll.hours

這個參數會在日志segment沒有達到log.segment.bytes設置的大小,也會強制新建一個segment會被  topic創建時的指定參數覆蓋


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM