Re: [請益]高流量網站和資料結構
※ 引述《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
就這些內容,全看完不可能 但掌握幾個大方向你的系統設計能力就不會差
--
學弟名言:
讀書是三小 我只知道毒玉
延畢是三小 我只知道炎玉
--
分享 推個
來看看
推!
謝謝分享
感謝分享這些資源,thx!
111
ty
11
推感謝
謝謝分享
推DDIA 每次重看都有不同收穫 聖經啊
good
狂
強
感謝分享資源
推
推
6
講購票系統,台灣的講法永遠只有一個,就是AWS 可以動態增加,沒了。 劃位如何LOCK? 要先扣再劃,還是先劃再扣? 還有劃位方式? USER 自己挑? 都電腦挑? --3
高流量應用 你沒定義好需求根本無法討論怎麼設計 1. 資料一致性要求? 持久性要求? 如果一定要用到交易,基本上一致性和持久性就一定要, 就直接用掉 CAP 定理的 Consistency,算是最常見的瓶頸 2. 如果是寫 log 系統,這種 QPS 要破萬比網站容易多了,也很常見9
「沒有學會走,先學跑,從來不是問題,但先問一問自己是不是天才。 如果不是,就要一步步來。」 (寒戰2 梁家輝) 我假設你是三年以內的工程獅,那有這個問題合理 那如果你是三年以上的工程獅,Umm... 這麼說好了,高併發跟海量請求其實是集合性的名詞、概念跟技術64
首先很高興看到原PO發問 能夠這樣追逐更深入的技術,先恭喜你,離高手又更近一步了 我寫程式要飯也好一陣子了,分享一下我從聽說大流量很屌,想玩大流量, 到現在可以真正碰觸到大流量一路的心得 在開始之前,先回應原PO的 搶票網站 例子9
首Po先自承是非本科的新人 最近看了版上的討論串,覺得自己的確實是 沒有CS基礎的API工程師,以前在學校修過資料結構 但是只有一些很粗糙的觀念 像是hash function因為返回的是index,所以在查找資料上非常快
爆
[心得] 國外各大公司面試經驗背景:4~7年經驗(anonymized), 求學背景是純商, 程式100%從0自學來的 Leetcode去年訂了一年Premium之後開始刷,累積到目前700題,Medium + Hard佔約70% 2020年2月開始陸續投遞履歷,全部都是投英國/日本的職位 只有Google例外是台北辦公室(GCP) 投遞:Stripe, Yelp, Microsoft, Apple, Indeed, Google,58
[心得] 日本轉職面試 bytedance/paypay/amazon背景: 小弟是交大電資2018畢業,畢業直接到了日本小公司寫Java 在學時有網路管理,與在新創公司做Ruby on Rails 半年後到Google做GCP的Technical Support (TSE) 今年滿兩年多,決定還是要回去找寫Code的工作。54
[心得] Meta SDE-ML 面試Meta London AI Center 年初聯絡我 我想說有對到我的專業就聊聊看 所以就跟他們的 HR 聊了一下針對他們目前在看的方向做一個瞭解 整體來說 Meta London AI Center 主要是做推薦系統相關的研究 想說推薦系統也做過了幾次,有些經驗可以聊聊,所以就開始跑流程26
[面試]台積面試職缺請益-RD design rule工程師有幸收到台積 RD design rule engineer 面試邀請 面試邀請信跟104上的完全一樣 職務名稱: RD design rule engineer 工作地點: 竹科22
[心得] 2022 後端面試心得# 2022 後端面試心得 背景: 3yoe,做了兩年豬屎屋後受不了工作型態轉職Backend,目前約一年後端經驗 無奈薪水太低加上今年上半年各種外商擴招就開始面試,目標是出國或外商remote缺,主要 以golang工作為主20
[心得] Foodpanda / ShopbackPart 3 這應該是我最後一篇面試文 希望對這兩家公司有興趣的人有幫助 FoodPanda - Backend Engineer 面試全部都是"英文"18
[討論] 怎樣算是一個合格的junior cpp programme諸位資工大神好,我本身是EE背景的 因為想脫離design house的生活 一直有在刷題+補充Cpp, oop 相關知識 之前有幸找到一份junior寫Cpp的工作 想了解對各位來說,有沒有一個對於qualified cpp programmer的具體標準1
Re: [請益] 臉書面試繼續與否我猜這大概是 HR 跟你說的,distribution design 應該常見,但 multithread 不好說 不管怎麼樣隨便找一本 system design interview 的書應該就能應付了 : 「根本沒有on-site的實力,浪費了面試官寶貴的工作時間」這件事。 前面也有人提到,這是他們的績效之一,不會浪費,有沒有上跟績效無關, 重點是幫公司面了幾個 candidate