kafka 0.11中文文檔翻譯--第三章:配置(Topic-Level Configs)

Kafka topic級別的配置參數(shù)。首先是可以在配置文件中設(shè)置全局性的topic配置參數(shù),其次是可以在創(chuàng)建topic時使用 --confi設(shè)置一個或多個自定義的配置。自定義的配置項優(yōu)先級別會高于全局配置。
這是在創(chuàng)建一個topic時自定義了最大的消息字節(jié)數(shù)和消息持久化參數(shù):

> bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic my-topic --partitions 1 --replication-factor 1 --config max.message.bytes=64000 --config flush.messages=1

可以在創(chuàng)建topic后繼續(xù)使用命令修改topic中已經(jīng)定義了的參數(shù),本示例更新my-topic的最大message大?。海?/p>

> bin/kafka-configs.sh --zookeeper localhost:2181 --entity-type topics --entity-name my-topic --alter --add-config max.message.bytes=128000

要檢查在主題上設(shè)置的覆蓋,您可以執(zhí)行

> bin/kafka-configs.sh --zookeeper localhost:2181 --entity-type topics --entity-name my-topic –describe

或者是刪除指定的topic中的某個自定義參數(shù):

> bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic my-topic --deleteConfig max.message.bytes

或者是刪除指定的topic中的某個自定義參數(shù):

> bin/kafka-configs.sh --zookeeper localhost:2181 --entity-type topics --entity-name my-topic --alter --delete-config max.message.bytes

以下是主題級配置。 該屬性的服務(wù)器默認(rèn)配置在“服務(wù)器默認(rèn)屬性”標(biāo)題下給出。 給定的服務(wù)器默認(rèn)配置值只適用于主題,如果它沒有明確的主題配置覆蓋。

topic參數(shù) 默認(rèn)值 broker默認(rèn)參數(shù) 描述
cleanup.policy delete log.cleanup.policy 要么是”delete“要么是”compact“; 這個字符串指明了針對舊日志部分的利用方式;默認(rèn)方式("delete")將會丟棄舊的部分當(dāng)他們的回收時間或者尺寸限制到達時。”compact“將會進行日志壓縮
delete.retention.ms 86400000 (24 hours) log.cleaner.delete.retention.ms 對于壓縮日志保留的最長時間,也是客戶端消費消息的最長時間,通log.retention.minutes的區(qū)別在于一個控制未壓縮數(shù)據(jù),一個控制壓縮后的數(shù)據(jù)。此項配置可以在topic創(chuàng)建時的置頂參數(shù)覆蓋
file.delete.delay.ms 60000 log.segment.delete.delay.ms 從文件系統(tǒng)中刪除文件之前的等待時間
flush.messages None log.flush.interval.messages 此項配置指定時間間隔:強制進行fsync日志。例如,如果這個選項設(shè)置為1,那么每條消息之后都需要進行fsync,如果設(shè)置為5,則每5條消息就需要進行一次fsync。一般來說,建議你不要設(shè)置這個值。此參數(shù)的設(shè)置,需要在"數(shù)據(jù)可靠性"與"性能"之間做必要的權(quán)衡.如果此值過大,將會導(dǎo)致每次"fsync"的時間較長(IO阻塞),如果此值過小,將會導(dǎo)致"fsync"的次數(shù)較多,這也意味著整體的client請求有一定的延遲.物理server故障,將會導(dǎo)致沒有fsync的消息丟失.
flush.ms None log.flush.interval.ms 此項配置用來置頂強制進行fsync日志到磁盤的時間間隔;例如,如果設(shè)置為1000,那么每1000ms就需要進行一次fsync。一般不建議使用這個選項
follower.replication.throttled.replicas "" follower.replication.throttled.replicas 在follower一側(cè)限制哪一個log副本的列表。該列表應(yīng)以[PartitionId]:[BrokerId],[PartitionId]:[BrokerId]:...的形式描述一組副本,或者也可以使用通配符“*”來限制該主題的所有副本。
index.interval.bytes 4096 log.index.interval.bytes 默認(rèn)設(shè)置保證了我們每4096個字節(jié)就對消息添加一個索引,更多的索引使得閱讀的消息更加靠近,但是索引規(guī)模卻會由此增大;一般不需要改變這個選項
leader.replication.throttled.replicas "" leader.replication.throttled.replicas 應(yīng)該在leader side限制日志復(fù)制的副本列表。 該列表應(yīng)以[PartitionId]:[BrokerId],[PartitionId]:[BrokerId]:...的形式描述一組副本,或者也可以使用通配符“*”來限制該主題的所有副本。
max.message.bytes 1000000 max.message.bytes kafka追加消息的最大尺寸。注意如果你增大這個尺寸,你也必須增大你consumer的fetch 尺寸,這樣consumer才能fetch到這些最大尺寸的消息。
message.format.version 0.11.0-IV2 log.message.format.version 指定broker將用于將消息添加到日志文件的消息格式版本。 該值應(yīng)該是有效的ApiVersion。 一些例子是:0.8.2,0.9.0.0,0.10.0。 通過設(shè)置特定的消息格式版本,用戶保證磁盤上的所有現(xiàn)有消息都小于或等于指定的版本。 不正確地設(shè)置這個值將導(dǎo)致使用舊版本的用戶出錯,因為他們將接收到他們不理解的格式的消息。
message.timestampdifference.max.ms 9223372036854775807 log.message.timestamp.difference.max.ms broker收到消息時的時間戳和消息中指定的時間戳之間允許的最大差異。 如果log.message.timestamp.type = CreateTime,如果時間戳的差值超過此閾值,則會拒絕接受這條消息。 如果log.message.timestamp.type = LogAppendTime,則忽略此配置。允許的最大時間戳差異不應(yīng)大于log.retention.ms,以避免不必要地頻繁進行日志滾動。
message.timestamp.type CreateTime log.message.timestamp.type 定義消息中的時間戳是消息創(chuàng)建時間還是日志追加時間。 該值應(yīng)該是“CreateTime”或“LogAppendTime”
min.cleanable.dirty.ratio 0.5 min.cleanable.dirty.ratio 此項配置控制log壓縮器試圖進行清除日志的頻率。默認(rèn)情況下,將避免清除壓縮率超過50%的日志。這個比率避免了最大的空間浪費
min.compaction.lag.ms 0 log.cleaner.min.compaction.lag.ms 消息在日志中保持未壓縮的最短時間。 僅適用于正在壓縮的日志。
min.insync.replicas 1 min.insync.replicas 當(dāng)producer設(shè)置request.required.acks為-1時,min.insync.replicas指定replicas的最小數(shù)目(必須確認(rèn)每一個repica的寫數(shù)據(jù)都是成功的),如果這個數(shù)目沒有達到,producer會產(chǎn)生異常。
preallocate false log.preallocate 是否預(yù)創(chuàng)建新的段文件,windows推薦使用
retention.bytes None log.retention.bytes 如果使用“delete”的retention 策略,這項配置就是指在刪除日志之前,日志所能達到的最大尺寸。默認(rèn)情況下,沒有尺寸限制而只有時間限制
retention.ms 7 days log.retention.minutes 如果使用“delete”的retention策略,這項配置就是指刪除日志前日志保存的時間。
segment.bytes 1GB log.segment.bytes kafka中l(wèi)og日志是分成一塊塊存儲的,此配置是指log日志劃分成塊的大小
segment.index.bytes 10MB log.index.size.max.bytes 此配置是有關(guān)offsets和文件位置之間映射的索引文件的大小;一般不需要修改這個配置
segment.ms 7 days log.roll.hours 即使log的分塊文件沒有達到需要刪除、壓縮的大小,一旦log 的時間達到這個上限,就會強制新建一個log分塊文件
segment.jitter.ms 0 log.roll.jitter.{ms,hours} The maximum jitter to subtract from logRollTimeMillis.
compression.type producer compression.type 為主題指定一個壓縮類型,此配置接受標(biāo)準(zhǔn)壓縮編碼('gzip', 'snappy', lz4),另外接受'uncompressed‘相當(dāng)于不壓縮, 'producer' 意味著壓縮類型由producer指定。
unclean.leader.election.enable false unclean.leader.election.enable 指明了是否能夠使不在ISR中replicas follower設(shè)置用來作為leader
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容