Kafka常用API命令彙總

2021-10-01 20:26:34 字數 4083 閱讀 3241

kafka常用api命令彙總:

0、啟動kafka集群

kafka-server-start.sh -d config/server.properties
1、列出集群裡的所有主題。

$ kafka-topics.sh --zookeeper node01:2181,node02:2181,node03:2181 --list

2、 建立乙個叫作my-topic的主題,主題包含8分割槽,每個分割槽擁有兩個副本。 kafka-topics.sh --zookeeper node01:2181,node02:2181,node03:2181 --create --topic source_topic --replication-factor 3 --partitions 2

3、列出集群裡所有主題的詳細資訊。 kafka-topics.sh --zookeeper node01:2181,node02:2181,node03:2181 --describe

4、列出集群裡特定主題的詳細資訊。 kafka-topics.sh --zookeeper node01:2181,node02:2181,node03:2181 --describe --topic my-topic

5、刪除乙個叫作my-topic的主題。 kafka-topics.sh --zookeeper node01:2181,node02:2181,node03:2181 --delete --topic my-topic

需要設定 delete.topic.enable 為true

6、列出舊版本的所有消費者群組。 kafka-consumer-groups.sh --zookeeper node01:2181,node02:2181,node03:2181 --list

7、列出新版本的所有消費者群組。 kafka-consumer-groups.sh --new-consumer --bootstrap-server node01:9092,node02:9092,node03:9092 --list

8、獲取舊版本消費者群組testgroup的詳細資訊。 kafka-consumer-groups.sh --zookeeper node01:2181 --describe --group testgroup

9、獲取新版本消費者群組console-consumer-87024的詳細資訊。 kafka-consumer-groups.sh --new-consumer --bootstrap-server node01:9092,node02:9092,node03:9092 --describe --group console-consumer-87024

10、檢視某乙個topic對應的訊息數量。 kafka-run-class.sh kafka.tools.getoffsetshell --broker-list node01:9092 --topic b2cdata_collection3 --time -1

11、檢視log日誌片段的內容,顯示檢視日誌的內容。 kafka-run-class.sh kafka.tools.dumplogsegments --files 00000000000000000000.log --print-data-log

12、控制台生產者:向主題 my-topic 生成兩個訊息。 kafka-console-producer.sh --broker-list node01:9092 --topic my-topic

13、控制台消費者:從主題 my-topic 獲取訊息。 kafka-console-consumer.sh --zookeeper node01:2181,node02:2181,node03:2181 --topic my-topic --from-beginning

server.properties 配置項名稱

說明預設值

有效值重要性

bootstrap.servers

kafka集群的broker-list,如:hadoop01:9092,hadoop02:9092無必選

acks

確保生產者可靠性設定,有三個選項:acks=0:不等待成功返回acks=1:等leader寫成功返回acks=all:等leader和所有isr中的follower寫成功返回,all也可以用-1代替

-10,1,-1,all

key.serializer

key的序列化器

bytearrayserializerstringserializer

必選value.serializer

value的序列化器

bytearrayserializerstringserializer

必選buffer.memory

producer總體記憶體大小

33554432

不要超過物理記憶體,根據實際情況調整

建議必選

compression.type

壓縮型別壓縮最好用於批量處理,批量處理訊息越多,壓縮效能越好

無retries

傳送失敗嘗試重發次數

0batch.size

每個partition的未傳送訊息大小

16384

根據實際情況調整

建議必選

client.id

附著在每個請求的後面,用於標識請求是從什麼地方傳送過來的

connections.max.idle.ms

連線空閒時間超過過久自動關閉(單位毫秒)

540000

linger.ms

資料在緩衝區中保留的時長,0表示立即傳送為了減少網路耗時,需要設定這個值太大可能容易導致緩衝區滿,阻塞消費者太小容易頻繁請求服務端

0max.block.ms

最大阻塞時長

60000

max.request.size

請求的最大位元組數,該值要比batch.size大不建議去更改這個值,如果設定不好會導致程式不報錯,但訊息又沒有傳送成功

1048576

partitioner.class

分割槽類,可以自定義分割槽類,實現partitioner介面

預設是雜湊值%partitions

receive.buffer.bytes

socket的接收快取空間大小,當閱讀資料時使用

32768

request.timeout.ms

等待請求響應的最大時間,超時則重發請求,超過重試次數將拋異常

3000

send.buffer.bytes

傳送資料時的快取空間大小

131072

timeout.ms

控制server等待來自followers的確認的最大時間

30000

max.in.flight.requests.per.connection

kafka可以在乙個connection中傳送多個請求,叫作乙個flight,這樣可以減少開銷,但是如果產生錯誤,可能會造成資料的傳送順序改變。

5metadata.fetch.timeout.ms

從zk中獲取元資料超時時間比如topic\host\partitions

60000

metadata.max.age.ms

即使沒有任何partition leader 改變,強制更新metadata的時間間隔

300000

metric.reporters

類的列表,用於衡量指標。實現metricreporter介面,將允許增加一些類,這些類在新的衡量指標產生時就會改變。jmxreporter總會包含用於註冊jmx統計

none

metrics.num.samples

用於維護metrics的樣本數

2metrics.sample.window.ms

metrics系統維護可配置的樣本數量,在乙個可修正的window size。這項配置配置了視窗大小,例如。我們可能在30s的期間維護兩個樣本。當乙個視窗推出後,我們會擦除並重寫最老的視窗

30000

reconnect.backoff.ms

連線失敗時,當我們重新連線時的等待時間。這避免了客戶端反覆重連

10retry.backoff.ms

在試圖重試失敗的produce請求之前的等待時間。避免陷入傳送-失敗的死迴圈中

100

常用API彙總

string 三角函式 方法名功能描述 引數返回值 sin num 正弦double double cos num 余弦double double tan num 正切double double 求整 絕對值 方法名功能描述 引數返回值 abs num 求絕對值 int long float dou...

Kafka命令列操作及常用API

一 kafka命令列操作 1.檢視當前集群已存在的主題 bin kafka topic.sh zookeeper hd09 01 2181 list 2.建立主題 bin kafka topic.sh zookeeper hd09 01 2181 create relication factor 3...

js常用API彙總

typeof 檢測資料型別 string 轉換成字串 parseint 解析出乙個string或number的整數部分 parsefloat 解析出乙個string的浮點數部分 number 把乙個string解析為number blooean 轉換成布林型別 nan,undefined,null,...