中級還沒有評分

訊息佇列與 Kafka:從原理到面試

從為什麼要用訊息佇列學到 Kafka 的分區、消費者群組、副本、不丟不重與順序,用電商下單後的事件流貫穿全課,準備好面試會追問的原理。

9 章・52 單元・約 10 小時 48 分鐘

課程介紹

這門課先講訊息佇列解決什麼問題、要付出什麼代價,再一路學到 Kafka 的分區與 key、生產者與消費者、副本與 ISR、不丟訊息、不重複消費、順序、為什麼快,最後是積壓、重試、延遲訊息、Outbox 這些實戰問題,以及 Kafka 跟 RabbitMQ、RocketMQ 怎麼選。 全課用同一個情境:一家網路商店下單之後的事件流。訂單、付款、庫存各是一個 topic,下游有庫存、通知、對帳三個服務各自讀。每段指令後面就是實際執行的結果,讀課文就看得懂;想動手的話,第一章會教你在自己電腦用 Docker 跑起 Kafka 跟著做。 每個單元還有「面試這樣答」,把觀念整理成面試時可以直接講的回答。

用哪個版本

原理先教、不以版本為主軸:分區、副本、ISR、消費者群組這些觀念,新舊版本都一樣。課文的指令與結果在 Kafka 4.3 實際跑過,用的是現在的 KRaft 架構(不需要 ZooKeeper)。真正重要的版本變化,例如 ZooKeeper 換成 KRaft、新的消費者群組協定、讓 Kafka 也能當佇列用的 share group,集中在最後一章講。

你會學到

  • 說清楚訊息佇列解決什麼問題、帶來什麼代價,什麼時候不該用
  • 依需求設計 topic、分區數與 key,知道順序與熱分區的取捨
  • 看懂生產者的 acks、重試、冪等,以及消費者群組、offset 提交與 rebalance
  • 說得出副本、ISR、HW 與 leader 選舉怎麼讓 Kafka 不丟資料
  • 處理不丟訊息、不重複消費、順序、積壓、重試與延遲訊息這些實戰問題
  • 比較 Kafka、RabbitMQ、RocketMQ,在系統設計面試裡用對 Kafka

學習地圖

    1. 1-1課程導覽學訊息佇列與 Kafka 要從哪裡開始?8 分
    2. 1-2為什麼要用訊息佇列下單 API 為什麼不要順便把信寄完?13 分
    3. 1-3代價與不該用的時候加了訊息佇列,系統為什麼反而更難搞?13 分
    4. 1-4佇列、發佈訂閱與日誌一則訊息被讀走之後,還在不在?10 分
    5. 1-5準備練習環境怎麼在自己電腦跑起 Kafka?14 分
    6. 1-6本章小實作:第一個訂單事件從建立 topic 到讀出訊息要幾步?12 分

期末考

通過期末考,才算讀完整門課。

題數
30 題
及格分數
80 分
限時
不限時
沒過後要等
24 小時