訊息與協調練習題 (Practice - Messaging & Coordination)


Part 1:Batch vs Stream(批次與串流)

Q1(Recall):批次處理和串流處理分別處理什麼狀態的資料?各適合什麼場景?


Q2(Recall):為什麼 Spark 比 Hadoop MapReduce 快 10~100×?


Q3(Application):面試官問「我的延遲需求是 5 分鐘,用 Spark batch 跑得夠快嗎?」你的回答?


Q4(Application):Flink 的 Tumbling、Sliding、Session 三種視窗各適合什麼?


Q5(Analysis):什麼是 Event Time vs Processing Time 問題?Flink 用什麼解決遲到事件?


Part 2:架構與容錯

Q6(Recall):Lambda 和 Kappa Architecture 的核心差異?各自的主要缺點?


Q7(Application):你要設計分析系統,既要「過去 24h GMV 圖表」又要「即時訂單數」。選什麼架構?


Q8(Recall):三種語意保證(at-most/at-least/exactly-once)的差異?實務上的推薦組合?


Q9(Application):ETL 和 ELT 的差異?為什麼 ELT 成為現代雲端首選?


Q10(Application):三個常見管線模式(CDC / Fan-out / Enrichment)各解決什麼問題?


Q11(Analysis):管線中斷幾小時後恢復,如何消化積壓(backlog)?


Q12(Analysis):上游系統要加一個欄位,如何做 Schema 演化(Evolution)而不弄壞下游?


Part 3:Message Queue(訊息佇列)

Q13(Recall):Queue 買到哪三件事?為什麼說它「不會增加系統容量」?


Q14(Recall):投遞語義(at-most / at-least / exactly-once)哪個是主流?為什麼會重複投遞?


Q15(Application):使用者上傳圖片後要做壓縮/縮圖,但有人說「我們延遲要求 < 500ms」。該不該用 queue?


Q16(Analysis):多個 consumer 平行消費後順序就亂了,怎麼救?代價是什麼?


Part 4:Kafka

Q17(Recall):Topic 和 Partition 的差別?Kafka 的順序保證範圍到哪?


Q18(Recall):Consumer Group 的核心規則是什麼?acks=all 代表什麼?


Q19(Application):Ad Click Aggregator 用 ad id 當 partition key,Nike 推 LeBron 廣告後該 partition 爆量(hot partition)。怎麼處理?


Q20(Analysis):設計 YouTube 時有人想把影片直接丟進 Kafka 讓 worker 拉,為什麼是 anti-pattern?正確做法?


Part 5:Distributed Lock(分散式鎖)

Q21(Recall):釋放鎖為什麼不能裸 DEL?正解是什麼?


Q22(Recall):為什麼光有 TTL 不能保證互斥?fencing token 怎麼解決?


Q23(Application):電商結帳要避免超賣,你會用什麼鎖?為什麼鎖不是最終防線?


Q24(Analysis):面試官問「設計分散式鎖」,你的回答框架是什麼?


Part 6:ZooKeeper

Q25(Recall):ZooKeeper 三大 primitives 是什麼?三種 ZNode 各自用途?


Q26(Application):ZooKeeper 的 leader 選舉如何避免羊群效應(herd effect)?


Q27(Analysis):ZooKeeper 鎖 vs Redis 鎖該怎麼選?為什麼 Kafka 要從 ZooKeeper 遷到 KRaft?