看板 Soft_Job 關於我們 聯絡資訊
高流量應用 你沒定義好需求根本無法討論怎麼設計 1. 資料一致性要求? 持久性要求? 如果一定要用到交易,基本上一致性和持久性就一定要, 就直接用掉 CAP 定理的 Consistency,算是最常見的瓶頸 2. 如果是寫 log 系統,這種 QPS 要破萬比網站容易多了,也很常見 在台灣,檯面下 QPS 破萬的 log 系統應該比檯面上的"網站"多 但這種系統通常送出 request 就不理他了, 因此後端可以用 kafka 之類的大量接收 至於要怎麼寫 log 與寫到哪 (通常是 HDFS) 是另一段需求 3. 如果一致性不重要,基本上就盡量設計成可以無腦 Scale out 但如果系統有做 sharding,那 Scale out 的數量非常驚人, 因此如何撐爆單台的資源就變得重要 4. 根據情境,還需要判斷 bare metal server 的重要性。 例如你程式用到 file system cache 等 5. 事情沒這麼單純,還有 latency/SLA 要求,如 95% percentile < 100ms 等 6. 外加 request payload 大小多大 7. 其實這些系統會再劃分好幾個子團隊,例如搞 storages、搞整合(dependencies)測試 真正搞大流量設計的是核心中的核心 其中因為系統通常包含非常多 components,整合測試規模可能會很複雜 我覺得還有很多我沒列到的 畢竟大流量系統的情境多元, 即使同樣的需求,不同團隊討論出的設計也不盡相同 因此在討論"大流量"沒先說好需求,那討論基本上會過於發散 如果你是靜態網站 那就 CDN 設好就能撐 QPS 一萬惹 要進大流量系統的團隊 不一定要需要先做過 即使考系統設計 也只是想知道你對於每個 Componennt 抉擇的邏輯合理性 實務上設計因為需求會更 tricky 因此建議: a. 基本知識弄好: OS 演算法 資料結構 multithreads 寫程式基本功 語言也要夠深,知道怎麼做 Memory/CPU profiling 如果有用到如 JVM 的技術,也要知道 GC 演算法與怎麼分析與調整參數 b. 找出大流量團隊在哪,不是你進 google 就能搞這個 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.73.26.66 (日本) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1629618866.A.67F.html ※ 編輯: alihue (106.73.26.66 日本), 08/22/2021 15:56:03
alihue: 補充,以購物網站就有不同的流量主題:搜尋 訂單成交 商08/22 16:05
alihue: 品庫存 推薦系統 使用者前端log08/22 16:05
jason2641668: 有沒有經驗啊 靜態網站QPS才1萬08/22 16:05
jason2641668: https://i.imgur.com/1Tw8bRl.png08/22 16:08
jason2641668: 隨便挑臺大學維護的系網站壓一下08/22 16:08
jason2641668: 這樣都能發文哦08/22 16:09
jason2641668: 真的完全在打臉自己基本功的部份08/22 16:11
jason2641668: 系網站不是商用機器 一般pchome買的到的commodity08/22 16:13
https://i.imgur.com/lw1Ig63.jpg
※ 編輯: alihue (106.73.26.66 日本), 08/22/2021 16:14:02
FlowerKnight: Lushen人格跑出來了08/22 16:32
brucetu: 請問jason大大的系網站每個request是多少流量?08/22 16:56
※ 編輯: alihue (106.73.26.66 日本), 08/22/2021 17:07:32
acgotaku: 推 一致性的問題真的是高併發的難題08/22 17:39
drajan: HDFS? 直接放到S3不是更簡單?08/22 17:39
update. 查了一下同樣用途 s3 也做得到,選擇細節就看各 team 不過大公司還是會想要弄自己私有雲
MoonCode: QPS 還要看同時連線數量吧?你單機可以模擬十萬個 tcp 08/22 18:17
MoonCode: connection? 08/22 18:17
MoonCode: Lushen 是誰08/22 18:25
alihue: 你捅過的鄉民,只是 ip 剛好跟 jason 一樣08/22 18:28
MoonCode: 你認錯人了我不是版主08/22 18:30
※ 編輯: alihue (106.73.26.66 日本), 08/22/2021 18:31:33
alihue: 抱歉 認錯人 08/22 18:32
MoonCode: 對了 我好奇 jason 是測試哪個網站 我可以用 wrk -t1 08/22 18:32
MoonCode: -c10000 -d180 跑跑看08/22 18:32
sammythekid: 但後續資料整合就知道了。目前就在收s3的鍋08/22 20:17
※ 編輯: alihue (106.73.26.66 日本), 08/22/2021 20:47:59 ※ 編輯: alihue (106.73.26.66 日本), 08/23/2021 06:23:26
GGFACE: ............. 08/23 10:34