簡述Kafka核心原理

2021-10-23 12:23:02 字數 2252 閱讀 7867

linux中kafka的常用命令

kafka是一種高吞吐量的分布式發布-訂閱 訊息系統,專為超高吞吐量的實時日誌採集、實時資料同步、實時資料計算等場景來設計。kafka是訊息中介軟體的一種,目前主流的訊息中介軟體有apache的activemq,linkedln開發的kafka(現已捐贈給apache),阿里的rocketmq。

優點:

缺點:對任意訊息佇列只能分區內有序而不能全域性有序

應用場景:

broker:kafka集群中的伺服器

topic:維護乙個主題中的訊息,可視為訊息分類

producer:向kafka主題發布(生產)訊息

consumer:訂閱(消費)主題並處理訊息

注:

注:資料可靠性保證:

follower故障:follower故障會被臨時提出isr,待follower恢復後,follower會讀取本地磁碟記錄的上次hw,並將log檔案高於hw的部分擷取掉,從hw開始向leader同步,等follower的leo大於等於該partition的hw,重新加入isr。

leader故障:從isr選出乙個新的leader,其餘follower會先將各自的log檔案高於hw的部分截掉,從新的leader同步資料,保證資料一致性。

沒有配置環境變數需切換至kafka安裝的根目錄,在相應命令前加上/bin

啟動kafka

①:前台啟動(會獨佔一視窗)

kafka-server-start.sh ./config/server.properties
②:後台啟動(加上daemon關鍵字)

kafka-server-start.sh -daemon ./config/server.properties
建立topic:

可以設定分割槽數與副本數,副本數不等大於brokers

kafka-topics.sh --create --zookeeper 192.168.206.129:2181 --topic testdemo --partitions 3 --replication-factor 1
建立生產者,產生資料:

kafka-console-producer.sh --topic testdemo --broker-list 192.168.206.129:9092
建立消費者,重頭開始取資料:

kafka-console-consumer.sh --bootstrap-server 192.168.206.129:9092 --topic testdemo --from-beginning
刪除topic:

這裡的ip位址不用改

kafka-topics.sh --zookeeper 127.0.0.1:2181 --delete --topic testdemo
檢視當前kafka中的所有topic列表 :

kafka-topics.sh --zookeeper 192.168.206.129:2181 --list
檢視某乙個topic詳情:

kafka-topics.sh --zookeeper 192.168.206.129:2181 --describe --topic testdemo
檢視某乙個topic訊息佇列數量:

kafka-run-class.sh kafka.tools.getoffsetshell --broker-list 192.168.206.129:9092 --topic testdemo -time -1 --offsets 1

spring核心原理簡述

最近閱讀了一下spring的核心 徹底弄懂了ioc和aop的實現原理,下面簡單的用自己的話總結歸納一下 web專案啟動時候,無論是使用tomcat 還是spring boot內嵌tomcat啟動,首先都會呼叫乙個servlet,spring使用的servlet是dispatcherservlet 2...

kafka核心原理總結

新霸哥發現在新的技術發展時代,訊息中介軟體也越來越受重視,很多的企業在招聘的過程中著重強調能夠熟練使用訊息中介軟體,所有做為乙個軟體開發愛好者,新霸哥在此提醒廣大的軟體開發朋友有時間多學習。kafka已經被很多的中小公司使用,訊息傳送接受,有用過的朋友可能就很清楚了,kafka是乙個支援分割槽的 分...

kafka核心原理總結

新霸哥發現在新的技術發展時代,訊息中介軟體也越來越受重視,很多的企業在招聘的過程中著重強調能夠熟練使用訊息中介軟體,所有做為乙個軟體開發愛好者,新霸哥在此提醒廣大的軟體開發朋友有時間多學習。kafka已經被很多的中小公司使用,訊息傳送接受,有用過的朋友可能就很清楚了,kafka是乙個支援分割槽的 分...