kafka常用術語、命令及參數

一、常見術語

  • broker:kafka集羣包括一個或多個服務器,這種服務器叫做broker。broker接受來自生產者的消息,爲消息設置偏移量,並提交消息到磁盤保存。broker爲消費者提供服務,對讀取分區的請求作出相應,返回已經提交到磁盤上的信息。
  • topic(主題):每條發佈到kafka的消息都有一個類別,這個類別叫做topic。topic就好比數據庫的表或者文件系統中的文件夾。一個主題可以分爲多個分區,一個分區就是一個提交日誌。消息以追加的方式寫入分區,然後以先入先出的順序讀取。注意,由於一個主題可以多個分區,因此無法在整個主題範圍內保證消息的順序,但可以保證消息在單個分區內的順序。其實就是隊列存儲
  • message(消息):kafka的數據單元。
  • 批次:就是一組消息,這些消息屬於同一個主題和分區。爲了提高效率,消息被分批次寫入kafka。
  • partition(分區):物理上的概念,一個topic通常有多個partition,類似隊列。
  • offset(偏移量):一種元數據,它是一個不斷遞增的整數值,在創建消息時,kafka會把它添加到消息裏。kafka爲每條在分區的消息保存這個offset,這也是消費者在分區的位置。比如一個偏移量爲10的消費者,表示它已經消費了0-9偏移量的消息,下一個要消費的消息是偏移量爲10的。
  • producer(生產者):消息的生產者,負責發送指定topic的消息到broker。默認情況下把消息均衡地分佈到主題的所有分區上。
  • consumer(消費者):消息讀取客戶端,通過訂閱一組topic的消息從broker拉取消息
  • consumer group(消費者羣組):消費者是消費者羣組的一部分,就是說,會有一個或者多個消費者共同讀取一個topic。羣組保證每個分區只能被一個消費者使用。可以爲消費者指定group name,若不指定則屬於默認的group。

二、啓動zookeeper

bin/zookeeper-server-start.sh config/zookeeper.properties &

三、啓動kafka

bin/kafka-server-start.sh config/server.properties 

四、kafka生產者

 bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test_topic

producer參數:

參數 值類型 說明 有效值
--bootstrap-server String

要連接的服務器(kafka_2.12-2.5.0版本後加入的)

必需(除非指定--broker-list)

形如:host1:prot1,host2:prot2
--topic String (必需)接收消息的主題名稱  
--broker-list String (kafka_2.12-2.5.0版本前)要連接的服務器 形如:host1:prot1,host2:prot2
--batch-size Integer 單個批處理中發送的消息數 200(默認值)
--compression-codec String 壓縮編解碼器 none、gzip(默認值)snappy、lz4、zstd
--max-block-ms Long 在發送請求期間,生產者將阻止的最長時間 60000(默認值)
--max-memory-bytes Long 生產者用來緩衝等待發送到服務器的總內存 33554432(默認值)
--max-partition-memory-bytes Long 爲分區分配的緩衝區大小 16384
--message-send-max-retries Integer 最大的重試發送次數 3
--metadata-expiry-ms Long 強制更新元數據的時間閾值(ms) 300000
--producer-property String 將自定義屬性傳遞給生成器的機制 形如:key=value
--producer.config String

生產者配置屬性文件

[--producer-property]優先於此配置

配置文件完整路徑
--property String 自定義消息讀取器

parse.key=true|false

key.separator=<key.separator>

ignore.error=true|false

--request-required-acks String 生產者請求的確認方式 0、1(默認值)、all
--request-timeout-ms Integer 生產者請求的確認超時時間 1500(默認值)
--retry-backoff-ms Integer 生產者重試前,刷新元數據的等待時間閾值 100(默認值)
--socket-buffer-size Integer TCP接收緩衝大小 102400(默認值)
--timeout Integer 消息排隊異步等待處理的時間閾值 1000(默認值)
--sync   同步發送消息  
--version  

顯示 Kafka 版本

不配合其他參數時,顯示爲本地Kafka版本

 
--help   打印幫助信息  

五、kafka消費者

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_topic --from-beginning

consumer參數:

參數 值類型 說明 有效值
--topic string 被消費的topic  
--whitelist string 正則表達式,指定要包含以供使用的主題的白名單  
--partition integer 指定分區 除非指定’–offset’,否則從分區結束(latest)開始消費  
--offset string 執行消費的起始offset位置 默認值:latest latest earliest <offset>
--consumer-property string 將用戶定義的屬性以key=value的形式傳遞給使用者  
--consumer.config string

消費者配置屬性文件

請注意,[consumer-property]優先於此配置

 
--formatter string

用於格式化kafka消息以供顯示的類的名稱

默認值:kafka.tools.DefaultMessageFormatter

kafka.tools.DefaultMessageFormatter

kafka.tools.LoggingMessageFormatter

kafka.tools.NoOpMessageFormatter

kafka.tools.ChecksumMessageFormatter

--property string 初始化消息格式化程序的屬性

print.timestamp=true|false

print.key=true|false

print.value=true|false

key.separator=<key.separator>

line.separator=<line.separator>

key.deserializer=<key.deserializer>

value.deserializer=<value.deserializer>

--from-beginning   從存在的最早消息開始,而不是從最新消息開始  
--max-messages integer 消費的最大數據量,若不指定,則持續消費下去  
--timeout-ms integer 在指定時間間隔內沒有消息可用時退出  
--skip-message-on-error   如果處理消息時出錯,請跳過它而不是暫停  
--bootstrap-server string 必需(除非使用舊版本的消費者),要連接的服務器  
--key-deserializer string    
--value-deserializer string    
--enable-systest-events   除記錄消費的消息外,還記錄消費者的生命週期 (用於系統測試)  
--isolation-level string

設置爲read_committed以過濾掉未提交的事務性消息

設置爲read_uncommitted以讀取所有消息

默認值:read_uncommitted

 
--group string 指定消費者所屬組的ID  
--blacklist string 要從消費中排除的主題黑名單  
--csv-reporter-enabled   如果設置,將啓用csv metrics報告器  
--delete-consumer-offsets   如果指定,則啓動時刪除zookeeper中的消費者信息  
--metrics-dir string 輸出csv度量值 需與[csv-reporter-enable]配合使用  
--zookeeper string

必需(僅當使用舊的使用者時)連接zookeeper的字符串。

可以給出多個URL以允許故障轉移

 

參考:https://blog.csdn.net/qq_29116427/article/details/80206125

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章