跳轉到

綜合應用案例:分散式系統路由引擎(探索版)

本案例以「雲端路由引擎開發」為場景,用**基礎建設工程師解決問題的視角**探索資料結構與演算法。你將扮演 CloudNet 的核心工程師,從實際問題出發,逐步發現「為什麼需要這個資料結構」。

設計理念:不是「先學資料結構,再找應用」,而是「遇到問題 → 需要什麼工具 → 引入資料結構」。


場景背景

你是 CloudNet(虛構的雲端服務商)的**路由引擎開發者**,負責維運跨越全球的網路基礎建設。

什麼是路由引擎?

**路由引擎**是網路的「交通指揮中心」,決定每一個封包該走哪條路。

職責 說明
路徑計算 給定來源與目的地,找出最佳路徑
負載平衡 分散流量,避免單點過載
故障轉移 偵測失效節點,自動繞路
成本最佳化 在效能與成本之間取得平衡

本案例中的問題正是路由引擎開發者日常會遇到的:查詢要多快?封包怎麼排隊?最短路徑怎麼算?

CloudNet 全球架構

                        ┌─────────┐
                        │ 倫敦 DC │
                        └────┬────┘
       ┌─────────┐      ┌────┴────┐      ┌─────────┐
       │ 紐約 DC │──────│ 法蘭克福│──────│ 孟買 DC │
       └────┬────┘      └────┬────┘      └────┬────┘
            │                │                │
       ┌────┴────┐      ┌────┴────┐      ┌────┴────┐
       │ 聖保羅  │      │ 新加坡  │──────│ 雪梨 DC │
       └─────────┘      └────┬────┘      └─────────┘
                        ┌────┴────┐      ┌─────────┐
                        │ 東京 DC │──────│ 首爾 DC │
                        └────┬────┘      └─────────┘
                        ┌────┴────┐
                        │ 台北 DC │
                        └─────────┘

網路參數

參數 說明 範例值
資料中心數量 全球節點 12 個
連線數量 光纖連接(非完全圖) ~30 條
單條連線延遲 光速傳播 + 設備處理 10-200 ms
單條連線頻寬 光纖容量 10-100 Gbps
單條連線成本 流量計費 $0.01-0.10/GB

你的日常挑戰

情境 你的問題 對應技術
週一早上流量暴增 「路由表查詢要 O(1),怎麼設計?」 Hash Table
緩衝區滿了 「封包誰先處理?」 Stack / Queue / Heap
客戶抱怨延遲 「台北到法蘭克福最快怎麼走?」 Dijkstra
預算審核 「最省錢的備援網路怎麼建?」 MST
頻寬不足 「這條路最多能傳多少流量?」 Max Flow
系統升級 「路由器升級順序怎麼排?」 拓撲排序
成本最佳化 「流量怎麼分配最省錢?」 DP
效能報告 「log 排序用什麼演算法?」 排序

目錄

第一部分:基礎路由

第二部分:優先處理

第三部分:路徑規劃

第四部分:系統最佳化

第五部分:效能調校

總結