如果现在还要设计一个新系统,为什么选择 Kafka 而不是 RabbitMQ?
最近看到了個(gè)重磅消息,即將發(fā)布的 Kafka 2.8 版本會(huì)移除 ZooKeepeer,這可是 Kafka 在架構(gòu)上的重大升級(jí)。讓一向“重量級(jí)”的 Kafka 從此變得簡單了起來,輕量級(jí)的單進(jìn)程部署可以作為 ActiveMQ 或 RabbitMQ 等的替代方案,并且同時(shí)也適合于邊緣場景和使用輕量級(jí)硬件的場景。
?
這下 Kafka 的粉絲肯定又多了,作為主流的 MQ 之一,Kafka 可以說是必學(xué)的消息系統(tǒng)了。我身邊也有不少工程師,把 Kafka 加入到自己的學(xué)習(xí)列表。畢竟,我們僅需要學(xué)習(xí)一套框架,就能在實(shí)際業(yè)務(wù)系統(tǒng)中實(shí)現(xiàn)消息隊(duì)列應(yīng)用、應(yīng)用程序集成、分布式存儲(chǔ)構(gòu)建,甚至是流處理應(yīng)用的開發(fā)與部署,可謂相當(dāng)超值了。
?
不過,想要學(xué)透 Kafka,沒有想象中的那么簡單,方法尤為重要。我的建議是:千萬不要直接扎到具體的細(xì)節(jié)中,亦或是從一個(gè)很小的點(diǎn)開始學(xué)習(xí)。因?yàn)槟銦o法建立全局的認(rèn)知觀,從而實(shí)現(xiàn)系統(tǒng)地學(xué)習(xí)。
?
在我看來,針對(duì)不同的角色,Kafka 的學(xué)習(xí)路徑是不一樣的:
?
如果你是軟件開發(fā)工程師,可以先根據(jù)編程語言,尋找對(duì)應(yīng)的 Kafka 客戶端,然后去官網(wǎng)上學(xué)習(xí)代碼示例,正確編譯和運(yùn)行樣例。再嘗試修改樣例代碼并使用其他的 API,之后觀測你修改的結(jié)果。
?
如果這些都沒有難倒你,你可以自己編寫一個(gè)小型項(xiàng)目來驗(yàn)證下學(xué)習(xí)成果,然后就是改善和提升客戶端的可靠性和性能了。到了這一步,就熟讀一遍 Kafka 文檔吧,確保你理解了那些可能影響可靠性和性能的參數(shù)。最后是學(xué)習(xí) Kafka 的高級(jí)功能,比如流處理應(yīng)用開發(fā)。
?
如果你是系統(tǒng)管理員或運(yùn)維工程師,那么學(xué)習(xí)目標(biāo)應(yīng)該是如何根據(jù)實(shí)際業(yè)務(wù)需求評(píng)估、搭建生產(chǎn) Kafka 線上環(huán)境。
?
對(duì)生產(chǎn)環(huán)境的監(jiān)控,Kafka 提供了超多的 JMX 監(jiān)控指標(biāo),你可以選擇任意你熟知的框架進(jìn)行監(jiān)控。有了監(jiān)控?cái)?shù)據(jù),勢必要觀測真實(shí)業(yè)務(wù)負(fù)載下的 Kafka 集群表現(xiàn)。之后利用已有的監(jiān)控指標(biāo)來找出系統(tǒng)瓶頸,然后提升整個(gè)系統(tǒng)的吞吐量,這是最能體現(xiàn)你工作價(jià)值的地方。
?
別看我現(xiàn)在說的頭頭是道,當(dāng)年學(xué)習(xí) Kafka 的時(shí)候,踩了不少坑。之后看了 Kafka 資深專家胡夕的書《Apache Kafka實(shí)戰(zhàn)》,豆瓣評(píng)分 8.8 分,很有收獲。所以后來聽說他出了個(gè)《Kafka 核心技術(shù)與實(shí)戰(zhàn)》的專欄,第一時(shí)間就買了,果然超出預(yù)期。
?
在這先分享一張胡夕總結(jié)的?Kafka 學(xué)習(xí)框架,分為 Kafka 入門、Kafka 的基本使用、客戶端詳解、Kafka 原理介紹、Kafka 運(yùn)維與監(jiān)控以及高級(jí) Kafka 應(yīng)用,建議收藏。
Kafka 學(xué)習(xí)框架
?
這些內(nèi)容,在他的《Kafka 核心技術(shù)與實(shí)戰(zhàn)》專欄都有,最近 2 刷,又有新的心得和體會(huì),毫不夸張的說,跟著學(xué)下來,能全面提升你的 Kafka 實(shí)戰(zhàn)能力。現(xiàn)在已經(jīng)將近 1.5W 人訂閱了,口碑相當(dāng)不錯(cuò)。
?
我非常認(rèn)可胡夕在文章中的一句話:“在實(shí)際工作中進(jìn)行學(xué)習(xí),往往是學(xué)得最快,掌握得也最扎實(shí)的學(xué)習(xí)方式”,專欄也是這個(gè)思路,把 Kafka 集群環(huán)境的監(jiān)控和管理、內(nèi)容原理剖析,以及一些消息系統(tǒng)常見疑難問題,都講得清晰透徹。
聽說馬上要漲價(jià)到 ¥199 了,現(xiàn)在只需 ¥89 ,有需要的朋友可以趕緊入手。
?
秒殺 + 口令「 Kafka6666」
到手僅¥89,即將漲至 ¥199
?
說到胡夕,在 Kafka 領(lǐng)域,他相當(dāng)有發(fā)言權(quán)了。
?
作為 Apache Kafka 的一名活躍代碼貢獻(xiàn)者。在過去幾年中,他經(jīng)歷了 Kafka 從最初的 0.8 版本逐步演進(jìn)到 2.7 版本的完整過程,可以說對(duì) Kafka 及其他開源流處理框架與技術(shù)有深刻理解。
?
他主導(dǎo)過多個(gè)十億級(jí)/天的消息引擎業(yè)務(wù)系統(tǒng)的設(shè)計(jì)與搭建,具有豐富的線上環(huán)境定位和診斷調(diào)優(yōu)經(jīng)驗(yàn),也曾給多家大型公司提供企業(yè)級(jí) Kafka 培訓(xùn),所以在講課方面也是經(jīng)驗(yàn)豐富,能用最樸素的語言把晦澀的原理講明白。
?
他早年基于 Kafka 1.0 版本撰寫的《Apache Kafka實(shí)戰(zhàn)》,就好評(píng)如潮,說內(nèi)容實(shí)戰(zhàn),看完上手即用,在工作中幫大家解決了問題。
?
現(xiàn)在的《Kafka核心技術(shù)與實(shí)戰(zhàn)》專欄,適用 Kafka 的最新版,而且不少讀者反饋,比起書,專欄講的更透徹,結(jié)合評(píng)論區(qū)胡夕的答疑,什么都清楚了。
?
專欄整體來說分成六個(gè)部分:
?
Kafka 入門。介紹消息引擎這類系統(tǒng)的原理和用途,以及作為優(yōu)秀的消息引擎代表,Kafka 是如何“脫穎而出”的。
?
Kafka 的基本使用。重點(diǎn)探討 Kafka 如何用于生產(chǎn)環(huán)境,特別是線上環(huán)境的方案該如何制定。
?
客戶端實(shí)踐及原理剖析。重點(diǎn)學(xué)習(xí) Kafka 客戶端的方方面面,既有生產(chǎn)者的實(shí)操講解,也有消費(fèi)者的原理剖析。
?
深入 Kafka 內(nèi)核。著重介紹 Kafka 最核心的設(shè)計(jì)原理,包括 Controller 的設(shè)計(jì)機(jī)制、請(qǐng)求處理的全流程等。
?
管理與監(jiān)控。這部分涵蓋 Kafka 運(yùn)維與監(jiān)控的內(nèi)容,將討論如何高效運(yùn)維 Kafka 集群,并分享有效監(jiān)控 Kafka 的實(shí)戰(zhàn)經(jīng)驗(yàn)。
?
高級(jí) Kafka 應(yīng)用之流處理。最后這一部分將會(huì)介紹 Kafka 流處理組件 Kafka Streams 的實(shí)戰(zhàn)應(yīng)用,并帶你從頭開發(fā)一個(gè) demo 項(xiàng)目。
?
我把目錄也給你扒來給你看看????
?
?
是不是內(nèi)容很實(shí)用?反正我是覺得真的可。現(xiàn)在開發(fā)節(jié)奏這么快,站在大牛的肩膀上學(xué)習(xí),能夠少走“彎路”,就是“捷徑”了。
?
最后再和大家強(qiáng)調(diào)一下:
秒殺 + 口令「Kafka6666」
到手 ¥89,即將漲價(jià)至 ¥199
現(xiàn)在相當(dāng)于半價(jià)入手
?
????????????
掃碼免費(fèi)試讀
?
想想我這些年在 Kafka 踩的坑,你就知道這花 2 杯奶茶的錢,就能獲得領(lǐng)域頂尖大佬的心法,多么值得了。
通過上面的海報(bào)購買,還可以返現(xiàn)?¥20。領(lǐng)取方式:添加微信:hiddenpps,記得備注你的極客昵稱。
?
點(diǎn)擊【閱讀原文】最低 ¥89,拿下 Kafka 避坑指南。
總結(jié)
以上是生活随笔為你收集整理的如果现在还要设计一个新系统,为什么选择 Kafka 而不是 RabbitMQ?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JDK中这些常用方法也有Bug
- 下一篇: Kafka淘汰倒计时!这个新一代消息中间