Kafka中Topic級別配置

2021-07-31 16:20:13 字數 2999 閱讀 8885

一、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

日誌清理策略選擇有:delete和compact主要針對過期資料的處理,或是日誌檔案達到限制的額度,會被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.5log.cleaner.min.cleanable.ratio

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

retention.bytes

none

log.retention.bytes

topic每個分割槽的最大檔案大小,乙個topic的大小限制= 分割槽數*log.retention.bytes。-1沒有大小限log.retention.bytes和log.retention.minutes任意乙個達到要求,都會執行刪除,會被topic建立時的指定引數覆蓋

retention.ms

none

log.retention.minutes

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

log.retention.bytes和log.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建立時的指定引數覆蓋

Kafka中Topic級別配置

一 kafka中topic級別配置 1 topic級別配置 配置topic級別引數時,相同 引數 屬性topic級別會覆蓋全域性的,否則預設為全域性配置屬性值。建立topic引數可以設定乙個或多個 config property 屬性 下面是建立乙個topic名稱為 my topic 例子,它設定了...

徹底刪除Kafka中的topic

1 刪除kafka儲存目錄 server.properties檔案log.dirs配置,預設為 tmp kafka logs 相關topic目錄 2 kafka 刪除topic的命令是 bin kafka topics delete zookeeper zookeeper server topic ...

徹底刪除Kafka中的topic

1 刪除kafka儲存目錄 server.properties檔案log.dirs配置,預設為 tmp kafka logs 相關topic目錄 2 kafka 刪除topic的命令是 bin kafka topics delete zookeeper zookeeper server topic ...