一察皇、Kafka中topic級別配置
配置topic級別參數(shù)時优床,相同(參數(shù))屬性topic級別會覆蓋全局的泥畅,否則默認為全局配置屬性值豌骏。
創(chuàng)建topic參數(shù)可以設(shè)置一個或多個--config "Property(屬性)",下面是創(chuàng)建一個topic名稱為"my-topic"例子,它設(shè)置了2個參數(shù)max message size 和 flush rate.
(A)創(chuàng)建topic時配置參數(shù)
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時配置參數(shù)
覆蓋已經(jīng)有topic參數(shù)汁蝶,下面例子修改"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級別配置參數(shù)
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交惯,因此所有節(jié)點信息都在此目錄下。
二穿仪、Topic級別配置屬性表
cleanup.policy
Default(默認值):delete
server.properties:log.cleanup.policy
說明(解釋):日志清理策略選擇有:delete和compact主要針對過期數(shù)據(jù)的處理席爽,或是日志文件達到限制的額度,會被 topic創(chuàng)建時的指定參數(shù)覆蓋
delete.retention.ms
Default(默認值):86400000 (24 hours)
server.properties:log.cleaner.delete.retention.ms
說明(解釋):
對于壓縮的日志保留的最長時間啊片,也是客戶端消費消息的最長時間只锻,同log.retention.minutes的區(qū)別在于一個控制未壓縮數(shù)據(jù),一個控制壓縮后的數(shù)據(jù)紫谷。會被topic創(chuàng)建時的指定參數(shù)覆蓋
delete.retention.ms
Default(默認值):86400000 (24 hours)
server.properties:log.cleaner.delete.retention.ms
說明(解釋):
對于壓縮的日志保留的最長時間齐饮,也是客戶端消費消息的最長時間,同log.retention.minutes的區(qū)別在于一個控制未壓縮數(shù)據(jù)笤昨,一個控制壓縮后的數(shù)據(jù)祖驱。會被topic創(chuàng)建時的指定參數(shù)覆蓋
flush.messages
Default(默認值):None
server.properties:log.flush.interval.messages
說明(解釋):
log文件”sync”到磁盤之前累積的消息條數(shù),因為磁盤IO操作是一個慢操作,但又是一個”數(shù)據(jù)可靠性"的必要手段,所以此參數(shù)的設(shè)置,需要在"數(shù)據(jù)可靠性"與"性能"之間做必要的權(quán)衡.如果此值過大,將會導致每次"fsync"的時間較長(IO阻塞),如果此值過小,將會導致"fsync"的次數(shù)較多,這也意味著整體的client請求有一定的延遲.物理server故障,將會導致沒有fsync的消息丟失.
flush.ms
Default(默認值):None
server.properties:log.flush.interval.ms
說明(解釋):僅僅通過interval來控制消息的磁盤寫入時機,是不足的.此參數(shù)用于控制"fsync"的時間間隔,如果消息量始終沒有達到閥值,但是離上一次磁盤同步的時間間隔達到閥值,也將觸發(fā).
index.interval.bytes
Default(默認值):4096
server.properties:log.index.interval.bytes
說明(解釋):當執(zhí)行一個fetch操作后,需要一定的空間來掃描最近的offset大小瞒窒,設(shè)置越大捺僻,代表掃描速度越快,但是也更好內(nèi)存崇裁,一般情況下不需要搭理這個參數(shù)
message.max.bytes
Default(默認值):1,000,000
server.properties: 表示消息的最大大小匕坯,單位是字節(jié)
說明(解釋):當執(zhí)行一個fetch操作后,需要一定的空間來掃描最近的offset大小拔稳,設(shè)置越大葛峻,代表掃描速度越快,但是也更好內(nèi)存巴比,一般情況下不需要搭理這個參數(shù)
min.cleanable.dirty.ratio
Default(默認值):0.5
server.properties:log.cleaner.min.cleanable.ratio
說明(解釋):日志清理的頻率控制术奖,越大意味著更高效的清理礁遵,同時會存在一些空間上的浪費,會被topic創(chuàng)建時的指定參數(shù)覆蓋
retention.bytes
Default(默認值):None
server.properties:log.retention.bytes
說明(解釋):
topic每個分區(qū)的最大文件大小采记,一個topic的大小限制 = 分區(qū)數(shù)*log.retention.bytes佣耐。-1沒有大小限log.retention.bytes和log.retention.minutes任意一個達到要求,都會執(zhí)行刪除挺庞,會被topic創(chuàng)建時的指定參數(shù)覆蓋
retention.ms
Default(默認值):None
server.properties:log.retention.minutes
說明(解釋):
數(shù)據(jù)存儲的最大時間超過這個時間會根據(jù)log.cleanup.policy設(shè)置的策略處理數(shù)據(jù),也就是消費端能夠多久去消費數(shù)據(jù)
log.retention.bytes和log.retention.minutes達到要求稼病,都會執(zhí)行刪除选侨,會被topic創(chuàng)建時的指定參數(shù)覆蓋
segment.bytes
Default(默認值):1 GB
server.properties:log.segment.bytes
說明(解釋):
topic的分區(qū)是以一堆segment文件存儲的,這個控制每個segment的大小然走,會被topic創(chuàng)建時的指定參數(shù)覆蓋
segment.index.bytes
Default(默認值):10 MB
server.properties:log.index.size.max.bytes
說明(解釋):對于segment日志的索引文件大小限制援制,會被topic創(chuàng)建時的指定參數(shù)覆蓋
log.roll.hours
Default(默認值):7 days
server.properties:log.index.size.max.bytes
說明(解釋): 這個參數(shù)會在日志segment沒有達到log.segment.bytes設(shè)置的大小,也會強制新建一個segment會被 topic創(chuàng)建時的指定參數(shù)覆蓋
參考資料:
https://www.cnblogs.com/moonandstar08/p/6139502.html
https://www.cnblogs.com/moonandstar08/p/6139463.html