先自我介紹一下,小編浙江大學畢業(yè),去過華為、字節(jié)跳動等大廠,目前阿里P7
深知大多數(shù)程序員,想要提升技能,往往是自己摸索成長,但自己不成體系的自學效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!
因此收集整理了一份《2024年最新Java開發(fā)全套學習資料》,初衷也很簡單,就是希望能夠幫助到想自學提升又不知道該從何學起的朋友。
既有適合小白學習的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗的小伙伴深入學習提升的進階課程,涵蓋了95%以上Java開發(fā)知識點,真正體系化!
由于文件比較多,這里只是將部分目錄截圖出來,全套包含大廠面經(jīng)、學習筆記、源碼講義、實戰(zhàn)項目、大綱路線、講解視頻,并且后續(xù)會持續(xù)更新
如果你需要這些資料,可以添加V獲?。簐ip1024b (備注Java)
正文
隊列多有什么好處?
-
單機可以創(chuàng)建更多Topic,因為每個Topic都是由一批隊列組成
-
Consumer的集群規(guī)模和隊列數(shù)成正比,隊列越多,Consumer集群可以越大
消息投遞實時性
-
Kafka使用短輪詢方式,實時性取決于輪詢間隔時間
-
RocketMQ使用長輪詢,同Push方式實時性一致,消息的投遞延時通常在幾個毫秒。
消費失敗重試
-
Kafka消費失敗不支持重試
-
RocketMQ消費失敗支持定時重試,每次重試間隔時間順延
總結(jié):例如充值類應用,當前時刻調(diào)用運營商網(wǎng)關(guān),充值失敗,可能是對方壓力過多,稍后在調(diào)用就會成功,如支付寶到銀行扣款也是類似需求。
這里的重試需要可靠的重試,即失敗重試的消息不因為Consumer宕機導致丟失。
更多面試題推薦:公眾號Java精選,回復java面試,獲取最新面試資料。
嚴格的消息順序
-
Kafka支持消息順序,但是一臺Broker宕機后,就會產(chǎn)生消息亂序
-
RocketMQ支持嚴格的消息順序,在順序消息場景下,一臺Broker宕機后,發(fā)送消息會失敗,但是不會亂序
Mysql Binlog分發(fā)需要嚴格的消息順序
定時消息
-
Kafka不支持定時消息
-
RocketMQ支持兩類定時消息
-
開源版本RocketMQ僅支持定時Level
-
阿里云ONS支持定時Level,以及指定的毫秒級別的延時時間
分布式事務消息
-
Kafka不支持分布式事務消息
-
阿里云ONS支持分布式定時消息,未來開源版本的RocketMQ也有計劃支持分布式事務消息
消息查詢
-
Kafka不支持消息查詢
-
RocketMQ支持根據(jù)Message Id查詢消息,也支持根據(jù)消息內(nèi)容查詢消息(發(fā)送消息時指定一個Message Key,任意字符串,例如指定為訂單Id)
總結(jié):消息查詢對于定位消息丟失問題非常有幫助,例如某個訂單處理失敗,是消息沒收到還是收到處理出錯了。
消息回溯
-
Kafka理論上可以按照Offset來回溯消息
-
RocketMQ支持按照時間來回溯消息,精度毫秒,例如從一天之前的某時某分某秒開始重新消費消息
總結(jié):典型業(yè)務場景如consumer做訂單分析,但是由于程序邏輯或者依賴的系統(tǒng)發(fā)生故障等原因,導致今天消費的消息全部無效,需要重新從昨天零點開始消費,那么以時間為起點的消息重放功能對于業(yè)務非常有幫助。
消費并行度
Kafka的消費并行度依賴Topic配置的分區(qū)數(shù),如分區(qū)數(shù)為10,那么最多10臺機器來并行消費(每臺機器只能開啟一個線程),或者一臺機器消費(10個線程并行消費)。即消費并行度和分區(qū)數(shù)一致。
RocketMQ消費并行度分兩種情況
-
順序消費方式并行度同Kafka完全一致
-
亂序方式并行度取決于Consumer的線程數(shù),如Topic配置10個隊列,10臺機器消費,每臺機器100個線程,那么并行度為1000。
消息軌跡
-
Kafka不支持消息軌跡
-
阿里云ONS支持消息軌跡
開發(fā)語言友好性
-
Kafka采用Scala編寫
-
RocketMQ采用Java語言編寫
Broker端消息過濾
Kafka不支持Broker端的消息過濾
RocketMQ支持兩種Broker端消息過濾方式
-
根據(jù)Message Tag來過濾,相當于子topic概念
-
向服務器上傳一段Java代碼,可以對消息做任意形式的過濾,甚至可以做Message Body的過濾拆分。
消息堆積能力
理論上Kafka要比RocketMQ的堆積能力更強,不過RocketMQ單機也可以支持億級的消息堆積能力,我們認為這個堆積能力已經(jīng)完全可以滿足業(yè)務需求。
開源社區(qū)活躍度
-
Kafka社區(qū)更新較慢
-
RocketMQ的github社區(qū)有250個個人、公司用戶登記了聯(lián)系方式,QQ群超過1000人。
商業(yè)支持
總結(jié):繪上一張Kakfa架構(gòu)思維大綱腦圖(xmind)
其實關(guān)于Kafka,能問的問題實在是太多了,扒了幾天,最終篩選出44問:基礎(chǔ)篇17問、進階篇15問、高級篇12問,個個直戳痛點,不知道如果你不著急看答案,又能答出幾個呢?
若是對Kafka的知識還回憶不起來,不妨先看我手繪的知識總結(jié)腦圖(xmind不能上傳,文章里用的是圖片版)進行整體架構(gòu)的梳理
梳理了知識,刷完了面試,如若你還想進一步的深入學習解讀kafka以及源碼,那么接下來的這份《手寫“kafka”》將會是個不錯的選擇。
-
Kafka入門
-
為什么選擇Kafka
-
Kafka的安裝、管理和配置
-
Kafka的集群
-
第一個Kafka程序
-
Kafka的生產(chǎn)者
-
Kafka的消費者
-
深入理解Kafka
-
可靠的數(shù)據(jù)傳遞
-
Spring和Kafka的整合
-
SpringBoot和Kafka的整合
-
Kafka實戰(zhàn)之削峰填谷
-
數(shù)據(jù)管道和流式處理(了解即可)
網(wǎng)上學習資料一大堆,但如果學到的知識不成體系,遇到問題時只是淺嘗輒止,不再深入研究,那么很難做到真正的技術(shù)提升。
需要這份系統(tǒng)化的資料的朋友,可以添加V獲?。簐ip1024b (備注Java)
一個人可以走的很快,但一群人才能走的更遠!不論你是正從事IT行業(yè)的老鳥或是對IT行業(yè)感興趣的新人,都歡迎加入我們的的圈子(技術(shù)交流、學習資源、職場吐槽、大廠內(nèi)推、面試輔導),讓我們一起學習成長!
轉(zhuǎn)存中…(img-hqGJoVGF-1713435566310)]
[外鏈圖片轉(zhuǎn)存中…(img-0JWSI47e-1713435566310)]
網(wǎng)上學習資料一大堆,但如果學到的知識不成體系,遇到問題時只是淺嘗輒止,不再深入研究,那么很難做到真正的技術(shù)提升。
需要這份系統(tǒng)化的資料的朋友,可以添加V獲?。簐ip1024b (備注Java)
[外鏈圖片轉(zhuǎn)存中…(img-yMCnHwFV-1713435566311)]文章來源:http://www.zghlxwxcb.cn/news/detail-859357.html
一個人可以走的很快,但一群人才能走的更遠!不論你是正從事IT行業(yè)的老鳥或是對IT行業(yè)感興趣的新人,都歡迎加入我們的的圈子(技術(shù)交流、學習資源、職場吐槽、大廠內(nèi)推、面試輔導),讓我們一起學習成長!文章來源地址http://www.zghlxwxcb.cn/news/detail-859357.html
到了這里,關(guān)于【137期】面試官問:RocketMQ 與 Kafka 對比,談談兩者的差異?(1)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!