作者ntpuisbest (阿龍)
看板Soft_Job
標題[請益]高流量網站和資料結構
時間Sat Aug 21 14:46:21 2021
先自承是非本科的新人
最近看了版上的討論串,覺得自己的確實是
沒有CS基礎的API工程師,以前在學校修過資料結構
但是只有一些很粗糙的觀念
像是hash function因為返回的是index,所以在查找資料上非常快
目前還在惡補基礎的DS,至於OS和計算機組織就真的完全沒概念了
每次看到thread,大概就止步於看到那種for loop 交叉印出不同函數的例子
自己稍微爬文下來,不太懂如果要往高流量網站的設計邁進
該怎麼去活用那些知識
我爬文的結果有點像是
如果一張資料庫數量超過百萬
那這樣就要想辦法把資料分成不同的表格
然後這時hashmap 就可以幫你找到不同的表格這樣?
爬文大概看到以下方法
1.建立多個File server , 寫hash function 將上傳的圖片及影音平均分散到File server
上的Folder
2.Query優化、索引優化及將負載重的table做反正規化以減少資料庫負荷
建立Master /Slave 資料庫,分散Master主機loading,將讀寫資料庫動作分離,
Matster DB只負責被寫入及複製,Slave DB負責被讀取
3.可能還有一些cache之類的
比如說像是搶票網站好了
https://imgur.com/TON1Nid
看到有人說可以這樣解決
那像這樣的知識,是不是要想辦法進去大公司才有辦法學到
比較難在網路上,像是一般的前後端CRUD一樣容易獲得?
另外想問說,如果有一個API,他是getallemployee好了,打了url就要返回所有的員工
資料,這是如果是高併發高流量的網站設計
該怎麼活用資料結構,才能讓網站不要LAG
還是說這可能跟資料結構比較無關,我要去補充其他知識才會知道
如果可以的話,希望前輩們可以分享哪些關鍵字或是網站有sample code可以查詢
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.91.22.53 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1629528383.A.892.html
1F:推 MoonCode: 百萬筆的話還是把機器加大吧 08/21 14:49
2F:推 neo5277: 併發 高流量 可以分好幾段去解 你先理解流程 08/21 14:49
3F:→ neo5277: 比較容易知道該自哪邊加東西,用那些工具沒有定論 08/21 14:50
4F:→ neo5277: 都是試出來的 08/21 14:50
5F:→ jason2641668: 認真講 先把基礎補好吧 08/21 14:52
6F:→ jason2641668: 面試最討厭那種滿嘴高併發高流量 08/21 14:52
7F:→ jason2641668: 問點基礎也不會的 08/21 14:52
8F:推 alihue: 你怎麼可以命名 master slave 這樣進不去 google 08/21 14:59
9F:→ alihue: 百萬筆而已 換個 SSD 就好 08/21 15:00
10F:→ alihue: 然後高流量網站很模糊阿:靜態網站、交易、寫log、一致性 08/21 15:02
11F:→ alihue: latency要求、req payload大小 這些都先定義好再問高流量 08/21 15:02
12F:→ alihue: 靜態網站 那我會說買好 CDN 就好ㄏ 08/21 15:03
13F:→ alihue: 一致性不重要,那全載記憶體 aws 開個 auto scale out就好 08/21 15:04
14F:→ alihue: 沒定義好需求 根本無法討論 08/21 15:04
15F:推 ldkrsi: "是不是要想辦法進去大公司才有辦法學到" 是 08/21 15:06
16F:推 alihue: 同上 要進去"高流量軟體"的 team 不一定要知道怎麼幹 08/21 15:08
17F:→ alihue: 因為你的知識在這個 team 可能幾乎用不上。除非你面資深缺 08/21 15:09
18F:→ Hsins: 小流量撐不住是 DSA 問題,大流量撐不住是架構問題 08/21 15:42
19F:→ kvjo: 不是高手 但經驗上...不見得 08/21 16:43
20F:→ kvjo: 1. 應該說商業上有這樣的場景 那有機會接觸到 08/21 16:43
21F:→ kvjo: 2.但你不是資深的也不是相關職位的 也不需要讓你碰 08/21 16:43
22F:→ kvjo: 3. 更有組織的公司應該有資深的人在負責這個 08/21 16:44
23F:→ kvjo: 4. 也不是說不會就沒有價值 軟體團隊上 還有其他角色價值 08/21 16:44
24F:→ kvjo: 也覺得滿奇怪的 很多人面試愛問高流量 08/21 16:45
25F:→ kvjo: 現在商業 有這麼多 未完成的高流量服務要給你做嗎? 08/21 16:45
26F:→ kvjo: 問了高流量經驗 阿你是每個缺都在找這樣的人 要大膽讓人改? 08/21 16:46
27F:→ kvjo: 其實很多面試官 也就平常人啊..... 不是因為面試什麼 他就強 08/21 16:46
28F:→ kvjo: 滿多面試官 感覺也倆光兩光的 哈 08/21 16:46
29F:推 bjk: 遇到很多博弈問大流量經驗,但感覺面試官自己也不會 08/21 18:15
31F:→ ntpuisbest: 謝謝各位 08/22 00:54
32F:推 jej: 總共百萬筆資料還是一天百萬筆 08/22 13:51
33F:→ jej: 總共才百萬 就硬體加強就好了 08/22 13:51
34F:→ jej: 一天百萬筆就是加強硬體 分散式 查尋 修改分離等策略 08/22 13:51
37F:→ DrTech: 資料庫才百萬筆資料,不就是用最基本的 Index 就好。又是 08/23 13:06
38F:→ DrTech: 基本能力都沒學,在好高騖遠系列。 08/23 13:06
39F:→ ntpuisbest: 抱歉 會在加強基礎能力qq 08/23 23:42