日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

整理了Kafka的一些常用工具,建议收藏备用!| 博文精选

發布時間:2024/8/23 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 整理了Kafka的一些常用工具,建议收藏备用!| 博文精选 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者 |?犀牛飼養員

責編 | 徐威龍

封面付費下載于視覺中國

本文主要列舉一些 Kafka 的常用工具,以及舉了一些例子來幫助理解。有需要的小伙伴,可以 Mark 起來再看。

環境

以下的操作都是基于kafka_2.11-2.2.0

工具

新建topic

bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 2 --topic spring-kafka-demo2
  • replication-factor: 指定副本數量

  • partitions:指定分區

查看topic列表

/bin/kafka-topics.sh --zookeeper localhost:2181 --list

刪除某個topic

/bin/kafka-topics.sh --zookeeper localhost:2181 --delete -topic spring-kafka-demo

查看有哪些消費組

./bin/kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --list

老版本是指定zk的地址,類似這樣:

kafka-consumer-groups.sh --zookeeper 127.0.0.1:2181 --list

新版本使用bootstrap,這個是區別。

查看某個消費組的詳情

kafka-consumer-groups.sh --new-consumer --bootstrap-server 127.0.0.1:9092 --group test-consumer-group --describe

這個是查看組名為test-consumer-group的消費組的情況。

簡單對每列進行說明:

  • TOPIC:

  消費者的topic名稱

  • PARTITION:

  分區數的名稱

  • CURRENT-OFFSET:

  consumer group最后一次提交的offset

  • LOG-END-OFFSET:

  最后提交的生產消息offset

  • LAG

  消費offset與生產offset之間的差值

  • CONSUMER-ID

  消費者的ID編號,我們知道消費者組里面可以有最少要有一個消費者,當然也可以有多個消費者。

  • HOST

  消費者的主機IP地址。

  • CLIENT-ID

  鏈接的ID編號。

關于offset補充一些知識點。

kafka有個常用的設置是 auto.offset.reset,它的意義是,

該屬性指定了消費者在讀取一個沒有偏移量的分區或者偏移量無效的情況下(因消費者長時間失效,包含偏移量的記錄已經過時井被刪除)該作何處理。它的默認值是 latest , 意思是說,在偏移量無效的情況下,消費者將從最新的記錄開始讀取數據(在消費者啟動之后生成的記錄)。另一個值是 earliest ,意思是說,在偏移量無效的情況下,消費者將從起始位置讀取分區的記錄。

這個屬性有以下幾個值,

  • earliest:當各分區下有已提交的offset時,從提交的offset開始消費;無提交的offset時,從頭開始消費

  • latest:當各分區下有已提交的offset時,從提交的offset開始消費;無提交的offset時,消費新產生的該分區下的數據

  • none:topic各分區都存在已提交的offset時,從offset后開始消費;只要有一個分區不存在已提交的offset,則拋出異常

我要強調的是,這個設置只有在我們的消費者(或者消費者群組)在分區內找不到有效的offset時才會生效。

舉個例子。

我們使用java kafka客戶端來操作kafak。比如我們在消費組group1有個消費者,消費了5條消息然后節點掛了。

然后我們重啟這個消費節點,那么我來問你,這個消費者會從哪里開始消費?

如果你回答根據auto.offset.reset的配置來決定那就說明你沒理解我上面所說的。

正確的答案是,消費者會繼續從上次掛掉的offset(kafka broker保存)那里繼續消費,根本不理會auto.offset.reset。

再舉個例子。

生產者在某個topic生產了一些消息,然后我們啟動一個消費組group2,里面有一個消費者。

如果這個時候kafka沒有這個topic消息的offset信息,那么auto.offset.reset的值就決定從哪里消費。

《原力計劃【第二季】-?學習力挑戰》正式開始!即日起至?3月21日,千萬流量支持原創作者!更有專屬【勛章】等你來挑戰

推薦閱讀:云原生的漏洞與威脅有哪些?云原生安全性如何?這里有你想知道的一切! 放心!沒人在意你使用的是命令式編程還是聲明式編程 如何基于本地語音識別,搭建一款智能聊天機器人? 編程小白模擬簡易比特幣系統,手把手帶你寫一波!(附代碼) | 博文精選 3 萬字 51 張圖教你 CPU、內存、操作系統硬核知識! 前沿技術探秘:知識圖譜構建流程及方法 真香,朕在看了!

總結

以上是生活随笔為你收集整理的整理了Kafka的一些常用工具,建议收藏备用!| 博文精选的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。