[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-designing-data-intensive-apps-scale-reliability-zh":3,"article-related-designing-data-intensive-apps-scale-reliability-zh":33,"series-industry-833aae34-c93d-4915-9195-52443d8dd7dd":87},{"id":4,"title":5,"content":6,"summary":7,"source":8,"source_url":9,"author":10,"image_url":11,"keywords":12,"language":21,"translated_content":10,"views":22,"is_premium":23,"created_at":24,"updated_at":24,"cover_image":11,"published_at":25,"rewrite_status":26,"rewrite_error":10,"rewritten_from_id":27,"slug":28,"category":29,"related_article_id":30,"status":31,"google_indexed_at":32,"x_posted_at":10,"tweet_text":10,"title_rewritten_at":10,"title_original":10,"key_takeaways":10,"topic_cluster_id":10,"embedding":10,"is_canonical_seed":23},"833aae34-c93d-4915-9195-52443d8dd7dd","資料密集系統怎麼撐住流量","\u003Cp>當系統資料量破百萬筆，問題就不是「能不能存」。\u003C\u002Fp>\u003Cp>真正麻煩的是，資料放哪裡、怎麼流動、哪台機器先掛。\u003C\u002Fp>\u003Cp>這就是 \u003Ca href=\"https:\u002F\u002Fwww.oreilly.com\u002Flibrary\u002Fview\u002Fdesigning-data-intensive-applications\u002F9781491903063\u002F\" target=\"_blank\" rel=\"noopener\">Designing Data-Intensive Applications\u003C\u002Fa> 這本書在講的事。說真的，它幾乎是做後端的人必看清單。\u003C\u002Fp>\u003Cp>很多團隊一開始都很天真。先上單一資料庫，先撐住流量再說。等到 QPS 上來、查詢變複雜、延遲開始飄，才發現架構早就埋雷。\u003C\u002Fp>\u003Ch2>什麼叫資料密集系統\u003C\u002Fh2>\u003Cp>資料密集系統，重點不是 CPU 多快。重點是資料怎麼存、怎麼讀、怎麼搬。推薦系統、金流平台、分析儀表板、電商後台，都算這一類。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775171394613-nz9d.png\" alt=\"資料密集系統怎麼撐住流量\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>這類系統常常要同時扛高吞吐和低延遲。你可能每秒要處理幾千筆請求，還要讓查詢維持在 100ms 內。這不是靠一台大機器就能解決。\u003C\u002Fp>\u003Cp>真正的變化，通常從規模開始。資料量一大，單機資料庫就會開始喘。這時候就得切讀寫、拆分資料、加 cache、加 queue、加 replica。\u003C\u002Fp>\u003Cp>Martin Kleppmann 在談\u003Ca href=\"\u002Fnews\u002Fwhy-distributed-systems-feel-so-weird-zh\">分散式系\u003C\u002Fa>統時說過一句很實在的話：\u003Cblockquote>“There are no perfect solutions, only trade-offs.”\u003C\u002Fblockquote>這句話很適合拿來當資料系統的座右銘。因為你選的每個方案，都在換東西。\u003C\u002Fp>\u003Cul>\u003Cli>資料量常常會到 TB，甚至 PB。\u003C\u002Fli>\u003Cli>讀寫吞吐都要顧，不是只看一邊。\u003C\u002Fli>\u003Cli>低延遲要在高流量下也維持住。\u003C\u002Fli>\u003Cli>故障不是例外，是日常。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>分割資料，才知道系統會不會失衡\u003C\u002Fh2>\u003Cp>Partitioning 是第一個常見的擴充手段。簡單講，就是把資料切到多台機器上。切得好，負載平均。切不好，某幾個 shard 會熱到冒煙。\u003C\u002Fp>\u003Cp>常見方法有三種。Range partitioning 適合時間序列或有順序的資料。H\u003Ca href=\"\u002Fnews\u002Fgoogles-gemini-3-1-flash-live-real-time-voice-ai-zh\">ash\u003C\u002Fa> partitioning 適合想平均分散資料。Directory partitioning 則適合路由邏輯比較複雜的場景。\u003C\u002Fp>\u003Cp>問題是，理論上平均，不代表實際上平均。某個大客戶如果流量特別兇，照樣能把單一 shard 打爆。時間區間切法也一樣，最近資料常常最熱，結果寫入全擠在同一區。\u003C\u002Fp>\u003Cp>講白了，分割策略不是看哪個最漂亮。要看你的流量長什麼樣子。這才是工程，不是背名詞。\u003C\u002Fp>\u003Cul>\u003Cli>Range partitioning：適合時間序列、日誌、事件資料。\u003C\u002Fli>\u003Cli>Hash partitioning：適合平均分散，減少單點壓力。\u003C\u002Fli>\u003Cli>Directory partitioning：適合需要額外中介資料的路由。\u003C\u002Fli>\u003Cli>Hotspot avoidance：分割設計成敗的核心。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>一致性不是信仰，是產品決策\u003C\u002Fh2>\u003Cp>分散式系統最難的地方，常常不是速度，而是資料要多一致。強一致性讓人比較好理解。你看到的就是最新狀態。但它也可能在網路出問題時，拖低可用性。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775171394528-l3v7.png\" alt=\"資料密集系統怎麼撐住流量\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>相反地，最終一致性接受短暫不一致。副本之間可以晚一點同步。這種設計常常讓系統在局部故障時還能繼續跑。\u003C\u002Fp>\u003Cp>這裡就會碰到 CAP theorem。簡單說，當網路分割發生時，系統沒辦法同時把一致性和可用性都拉滿。你只能選一邊先保。\u003C\u002Fp>\u003Cp>Eric Brewer 在談 CAP 時說得很直接：\u003Cblockquote>“The CAP theorem says that, in the presence of a network partition, one has to choose between consistency and availability.”\u003C\u002Fblockquote>這句話很殘酷，但很真實。因為產品需求，最後一定會逼你選。\u003C\u002Fp>\u003Cp>像銀行帳務，強一致性通常值得。像社群動態牆，按讚數晚幾秒更新，很多人根本不在意。重點是你要知道，哪種錯誤會讓使用者真的炸掉。\u003C\u002Fp>\u003Ch2>資料怎麼跑，數字最誠實\u003C\u002Fh2>\u003Cp>架構定下來後，下一個問題就是資料怎麼流。這通常會牽涉到關聯式資料庫、文件型資料庫、key-value 系統、串流平台。很多團隊也會同時混用，不會只靠一種工具。\u003C\u002Fp>\u003Cp>例如，交易資料可能放在 \u003Ca href=\"https:\u002F\u002Fwww.postgresql.org\u002F\" target=\"_blank\" rel=\"noopener\">PostgreSQL\u003C\u002Fa>。熱資料可能丟給 \u003Ca href=\"https:\u002F\u002Fredis.io\u002F\" target=\"_blank\" rel=\"noopener\">Redis\u003C\u002Fa>。事件管線則常用 \u003Ca href=\"https:\u002F\u002Fkafka.apache.org\u002F\" target=\"_blank\" rel=\"noopener\">Apache Kafka\u003C\u002Fa>。如果你要的是長時間保留訊息和多租戶串流，\u003Ca href=\"https:\u002F\u002Fpulsar.apache.org\u002F\" target=\"_blank\" rel=\"noopener\">Apache Pulsar\u003C\u002Fa> 也是常見選項。\u003C\u002Fp>\u003Cp>這些工具沒有誰一定最好。\u003Ca href=\"https:\u002F\u002Fwww.mongodb.com\u002F\" target=\"_blank\" rel=\"noopener\">MongoDB\u003C\u002Fa> 很適合文件型資料。\u003Ca href=\"https:\u002F\u002Fcassandra.apache.org\u002F\" target=\"_blank\" rel=\"noopener\">Apache Cassandra\u003C\u002Fa> 則偏向高寫入、可水平擴充的場景。選錯工具，後面就是一堆補洞工。\u003C\u002Fp>\u003Cp>真正該盯的數字也很實際。p95 latency、\u003Ca href=\"\u002Fnews\u002Fferresdb-production-rust-vector-db-updates-zh\">err\u003C\u002Fa>or rate、replication lag、throughput，這些才是系統健康度。你如果看到 p95 從 80ms 飆到 400ms，使用者一定有感。replication lag 如果掉進幾秒，dashboard 就會開始騙人。\u003C\u002Fp>\u003Cul>\u003Cli>p95 latency：看大多數使用者體感。\u003C\u002Fli>\u003Cli>Replication lag：看副本有沒有跟上。\u003C\u002Fli>\u003Cli>Throughput：看高峰期能不能扛住。\u003C\u002Fli>\u003Cli>Backpressure：看下游慢時會不會整串塞住。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>可觀測性，才是架構的照妖鏡\u003C\u002Fh2>\u003Cp>很多系統設計圖看起來都很美。真的上線後，才知道哪個 shard 熱、哪個 queue 卡、哪個服務在偷吃資源。這時候沒有可觀測性，等於你在摸黑救火。\u003C\u002Fp>\u003Cp>所以 logging、metrics、tracing 不是附加功能。它們是資料系統的基本裝備。沒有這些，你連問題在哪都不知道，更別說修。\u003C\u002Fp>\u003Cp>安全性也要一起看。資料系統通常握著最敏感的東西。傳輸加密、靜態加密、權限控管、稽核紀錄，這些都不能省。如果碰到個資、金流、醫療資料，法規壓力會直接進設計圖。\u003C\u002Fp>\u003Cp>我覺得很多團隊犯的錯，是把觀測和安全分開看。其實兩者是同一件事。你如果說不出資料去哪了，也很難說自己保得住。\u003C\u002Fp>\u003Ch2>為什麼這本書現在還有用\u003C\u002Fh2>\u003Cp>現在的資料系統，比十年前更雜。Serverless 會吃事件流。AI pipeline 會直接接 operational data。各團隊還想要更高的自治權。聽起來花俏，但底層問題其實還是那幾個。\u003C\u002Fp>\u003Cp>你還是得面對分割、複寫、延遲、故障、回復。這些東西沒有因為雲端或 LLM 就消失。只是換了更多工具包裝。\u003C\u002Fp>\u003Cp>這也是為什麼 \u003Ca href=\"https:\u002F\u002Fmartin.kleppmann.com\u002Fddia\u002F\" target=\"_blank\" rel=\"noopener\">Martin Kleppmann 的個人網站\u003C\u002Fa> 到現在還常被工程師拿來當參考。因為他講的不是某個框架，而是系統背後的物理限制。\u003C\u002Fp>\u003Cp>講白了，硬體可以加，架構債還是會算利息。你如果不先想 failure mode，後面就只能靠值班人員撐。\u003C\u002Fp>\u003Ch2>競品怎麼看，差異其實很現實\u003C\u002Fh2>\u003Cp>如果把資料系統工具放在一起看，差異會很直接。不是誰最潮，而是誰最適合你的流量型態。這也是很多團隊踩坑的地方，因為他們先選工具，再找問題。\u003C\u002Fp>\u003Cp>以資料庫來說，\u003Ca href=\"https:\u002F\u002Fwww.postgresql.org\u002F\" target=\"_blank\" rel=\"noopener\">PostgreSQL\u003C\u002Fa> 適合交易和複雜查詢。\u003Ca href=\"https:\u002F\u002Fwww.mongodb.com\u002F\" target=\"_blank\" rel=\"noopener\">MongoDB\u003C\u002Fa> 適合文件結構變動快的資料。\u003Ca href=\"https:\u002F\u002Fcassandra.apache.org\u002F\" target=\"_blank\" rel=\"noopener\">Cassandra\u003C\u002Fa> 比較偏高寫入和跨機房場景。\u003C\u002Fp>\u003Cp>以串流來說，\u003Ca href=\"https:\u002F\u002Fkafka.apache.org\u002F\" target=\"_blank\" rel=\"noopener\">Kafka\u003C\u002Fa> 生態成熟，很多公司都在用。\u003Ca href=\"https:\u002F\u002Fpulsar.apache.org\u002F\" target=\"_blank\" rel=\"noopener\">Pulsar\u003C\u002Fa> 的架構在多租戶和訊息保留上也有自己的強項。差別不是紙上規格，而是你的團隊要不要自己養運維複雜度。\u003C\u002Fp>\u003Cul>\u003Cli>PostgreSQL：交易穩，查詢能力強。\u003C\u002Fli>\u003Cli>MongoDB：文件模型彈性高。\u003C\u002Fli>\u003Cli>Cassandra：適合高寫入與水平擴充。\u003C\u002Fli>\u003Cli>Kafka：事件流生態完整，社群大。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>這些原則，跟台灣團隊很有關\u003C\u002Fh2>\u003Cp>台灣很多新創和企業團隊，都會先碰到一個現實問題。人少，系統卻要撐成長。這時候最容易發生的事，就是先把功能做出來，架構之後再補。\u003C\u002Fp>\u003Cp>問題是，資料系統的坑常常不能後補。你今天把資料模型設錯，明天就會在 migration、replica、cache invalidation 上還債。這些帳，最後都會回到工程時間。\u003C\u002Fp>\u003Cp>所以我會建議，先問三件事。流量長什麼樣？資料錯多久可以接受？哪個故障最不能發生？這三題答完，很多架構選擇就會清楚很多。\u003C\u002Fp>\u003Cp>如果你現在正在做新平台，我的預測很直接：接下來一年，懂 partitioning、consistency、observability 的團隊，會比只會加機器的團隊少踩很多雷。你不一定要一開始就做得很大，但你一定要先想清楚，哪裡會先壞。\u003C\u002Fp>","分割、一致性、可觀測性，決定資料密集系統能不能在高流量下維持速度與穩定。這篇用台灣開發者看得懂的方式，拆解《Designing Data-Intensive Applications》的核心觀念。","news.idsociety.org","https:\u002F\u002Fnews.idsociety.org\u002Fqtm\u002F411\u002Fget_tvdq63_designing_data_intensive_applications",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775171394613-nz9d.png",[13,14,15,16,17,18,19,20],"資料密集系統","分割資料","一致性","可觀測性","分散式系統","PostgreSQL","Kafka","Redis","zh",2,false,"2026-04-02T23:09:33.160242+00:00","2026-04-02T23:09:33.002+00:00","done","20b80cae-184b-49b2-ab11-5d40d0315341","designing-data-intensive-apps-scale-reliability-zh","industry","cc8e7147-2385-426f-8c9b-51caf7b5b48c","published","2026-04-07T07:41:14.73+00:00",{"tags":34,"relatedLang":46,"relatedPosts":50},[35,36,38,39,41,43,44,45],{"name":14,"slug":14},{"name":20,"slug":37},"redis",{"name":16,"slug":16},{"name":19,"slug":40},"kafka",{"name":18,"slug":42},"postgresql",{"name":15,"slug":15},{"name":17,"slug":17},{"name":13,"slug":13},{"id":30,"slug":47,"title":48,"language":49},"designing-data-intensive-apps-scale-reliability-en","Designing Data-Intensive Apps for Scale and Reliability","en",[51,57,63,69,75,81],{"id":52,"slug":53,"title":54,"cover_image":55,"image_url":55,"created_at":56,"category":29},"491c49cd-6b0b-4c4a-8120-402254ec0f4a","how-to-follow-gemini-and-apple-watch-12-rumors-zh","怎麼追 Gemini 與 Apple Watch 12 傳聞","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778933028697-qnhw.png","2026-05-16T12:03:23.685907+00:00",{"id":58,"slug":59,"title":60,"cover_image":61,"image_url":61,"created_at":62,"category":29},"92424d3d-23ac-4ae5-bedf-08db6a01eb9a","jensen-huang-trump-china-trip-zh","黃仁勳搭上川普專機赴中","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778930030195-daad.png","2026-05-16T11:13:26.928711+00:00",{"id":64,"slug":65,"title":66,"cover_image":67,"image_url":67,"created_at":68,"category":29},"cde2a775-0898-485e-9b0e-38c4288501b8","chatgpt-vs-gemini-9-tests-1-clear-winner-2026-zh","ChatGPT vs Gemini：9 項測試，誰更值得選","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778925827606-i3zy.png","2026-05-16T10:03:29.803046+00:00",{"id":70,"slug":71,"title":72,"cover_image":73,"image_url":73,"created_at":74,"category":29},"a4380666-3f3c-4465-be35-903068c7045e","how-to-reduce-ai-model-serving-friction-zh","怎麼降低 AI 模型部署摩擦","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778922836413-ff99.png","2026-05-16T09:13:31.665292+00:00",{"id":76,"slug":77,"title":78,"cover_image":79,"image_url":79,"created_at":80,"category":29},"bfbcb15a-47ab-478e-822a-38d89dc8cb84","lora-vs-qlora-vs-full-fine-tuning-zh","LoRA vs QLoRA vs 全量微調","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778915627798-evv7.png","2026-05-16T07:13:32.474543+00:00",{"id":82,"slug":83,"title":84,"cover_image":85,"image_url":85,"created_at":86,"category":29},"3c8fd898-40aa-4f98-b0d1-178e7b4d1c69","why-global-ai-regulation-2026-rewards-modular-compliance-zh","為什麼 2026 全球 AI 監管獎勵模組化合規","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778913216545-oxy8.png","2026-05-16T06:33:19.724845+00:00",[88,93,98,103,108,113,118,123,128,133],{"id":89,"slug":90,"title":91,"created_at":92},"ee073da7-28b3-4752-a319-5a501459fb87","ai-in-2026-what-actually-matters-now-zh","2026 AI 真正重要的事","2026-03-26T07:09:12.008134+00:00",{"id":94,"slug":95,"title":96,"created_at":97},"83bd1795-8548-44c9-9a7e-de50a0923f71","trump-ai-framework-power-speech-state-preemption-zh","川普 AI 框架瞄準電力、言論與州權","2026-03-26T07:12:18.695466+00:00",{"id":99,"slug":100,"title":101,"created_at":102},"ea6be18b-c903-4e54-97b7-5f7447a612e0","nvidia-gtc-2026-big-ai-announcements-zh","NVIDIA GTC 2026 重點拆解","2026-03-26T07:14:26.62638+00:00",{"id":104,"slug":105,"title":106,"created_at":107},"4bcec76f-4c36-4daa-909f-54cd702f7c93","claude-users-spreading-out-and-getting-better-zh","Claude 用戶更分散，也更會用","2026-03-26T07:22:52.325888+00:00",{"id":109,"slug":110,"title":111,"created_at":112},"bd903b15-2473-4178-9789-b7557816e535","openclaw-raises-hard-question-for-ai-models-zh","OpenClaw 逼問 AI 模型價值","2026-03-26T07:24:54.707486+00:00",{"id":114,"slug":115,"title":116,"created_at":117},"eeac6b9e-ad9d-4831-8eec-8bba3f9bca6a","gap-google-gemini-checkout-fashion-search-zh","Gap 把結帳搬進 Gemini","2026-03-26T07:28:23.937768+00:00",{"id":119,"slug":120,"title":121,"created_at":122},"0740e53f-605d-4d57-8601-c10beb126f3c","google-pushes-gemini-transition-to-march-2026-zh","Google 把 Gemini 轉換延到 2026 年 3…","2026-03-26T07:30:12.825269+00:00",{"id":124,"slug":125,"title":126,"created_at":127},"e660d801-2421-4529-8fa9-86b82b066990","metas-llama-4-benchmark-scandal-gets-worse-zh","Meta Llama 4 分數風波又擴大","2026-03-26T07:34:21.156421+00:00",{"id":129,"slug":130,"title":131,"created_at":132},"183f9e7c-e143-40bb-a6d5-67ba84a3a8bc","accenture-mistral-ai-sovereign-enterprise-deal-zh","Accenture 攜手 Mistral AI 賣主權 AI","2026-03-26T07:38:14.818906+00:00",{"id":134,"slug":135,"title":136,"created_at":137},"191d9b1b-768a-478c-978c-dd7431a38149","mistral-ai-faces-its-hardest-year-yet-zh","Mistral AI 迎來最硬的一年","2026-03-26T07:40:23.716374+00:00"]