Re: [請益]高流量網站和資料結構

作者: drajan (EasoN)   2021-08-21 15:14:13
※ 引述《ntpuisbest (阿龍)》之銘言:
: 先自承是非本科的新人
: 最近看了版上的討論串,覺得自己的確實是
: 沒有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
這是常用場景,已知問題,所以有很多解決方案。
其中一種就是類似Twtiiter的Push架構,每次新增一個員工就把資料寫進cache&DB
然後API打進來先去問cache要資料,然後cache多設幾個組成一個cluster,
避免單點失效...這些知識都可以從下面推薦的網站中學到,不用做過也略知一二
: 還是說這可能跟資料結構比較無關,我要去補充其他知識才會知道
: 如果可以的話,希望前輩們可以分享哪些關鍵字或是網站有sample code可以查詢
System Design Primer
https://github.com/donnemartin/system-design-primer
InfoQ
https://www.infoq.cn/topic/architecture
Grokking the System Design Interview
https://www.educative.io/courses/grokking-the-system-design-interview
HiredInTech
https://www.hiredintech.com/classrooms/system-design/lesson/52
System Design Interview
https://github.com/checkcheckzz/system-design-interview
Awesome Scalability
https://github.com/binhnguyennus/awesome-scalability
SYSTEM DESIGN INTERVIEW- AN INSIDER'S GUIDE
https://systeminterview.com/
另外我推薦分散式系統聖經 Design Data-Intesive Application
就這些內容,全看完不可能 但掌握幾個大方向你的系統設計能力就不會差
作者: kor525   2021-08-21 15:20:00
分享 推個
作者: kvjo (同名專輯)   2021-08-21 16:42:00
來看看
作者: tttkkk (學到。)   2021-08-21 17:01:00
推!
作者: WaterLengend (Leeeeeeeeooooooo)   2021-08-21 17:21:00
謝謝分享
作者: BlacksPig (Black Handsome s Pig)   2021-08-21 17:41:00
感謝分享這些資源,thx!
作者: bjk (Up2u)   2021-08-21 18:16:00
111
作者: ntpuisbest (阿龍)   2021-08-21 19:22:00
ty
作者: bjk (Up2u)   2021-08-21 19:28:00
11
作者: as209099 (Show小龍)   2021-08-21 23:47:00
推感謝
作者: ufap   2021-08-22 01:21:00
謝謝分享
作者: umum29 (....)   2021-08-22 02:34:00
推DDIA 每次重看都有不同收穫 聖經啊
作者: k798976869 (kk)   2021-08-22 03:02:00
good
作者: k900421 (qq)   2021-08-22 06:18:00
作者: popmentos (汽水 + 曼陀珠)   2021-08-22 08:43:00
作者: garylai00000 (garylai00000)   2021-08-22 16:49:00
感謝分享資源
作者: Yunyung (Yunyung)   2021-08-23 03:50:00
作者: devilkool (對貓毛過敏的貓控)   2021-08-23 08:57:00

Links booklink

Contact Us: admin [ a t ] ucptt.com