(GeekBand)系統設計與實踐 系統設計七劍客

大綱

  • 同步
  • 網絡
  • 數據庫
  • 分布式
  • 性能
  • 估算
  • 面向對象
案例
  • 社交網站信息流
  • 日志統計
  • 網絡爬蟲
  • 電商產品頁面

Concurrency

Thread vs. Process

Consumer and Producer

Blockingqueue

Tracking:(log記錄)

Synchronized(同步):每次請求直接寫入磁盤

Asynchronized(異步):先放入緩沖區,每隔一段時間刷新到磁盤上

Network

OSI模型(上到下封包)

  • Application Layer(*http1.0/1.1協議,應用層)
  • Presentaation Layer(應用層)
  • Session Layer(會話層)
  • Transport Layer(*TCP,UDP協議,傳輸層)
  • Network Layer(網絡層)
  • Data Link Layer(數據連接層)
  • Physical Layer(物理層)

Visit URL

What happens after you typed a URL in your browser and pressed return key?

(*尋址與建立鏈接是關鍵)

  1. 訪問DNS
  2. DNS返回網頁服務器IP地址
  3. 與網頁服務器建立連接(三次無首,80端口)
  4. 瀏覽器與服務器建立http會話(接受數據)
  5. 瀏覽器解析數據,渲染網頁
  6. 關閉瀏覽器,終止http會話

Database

Relational DB vs. KV Store(關系型數據庫VS.KeyValue存儲)

Sharding vs. Clustering(分片VS.集群)

TinyURL:

Store the mapping from shortlink code to full URL.

document:
  • code:varchar(8)
  • url:varchar(1000)
  • created_at:timestamp
  • We also need to store the reverse mapping from URL back to code.

Distribute System

How to scala Tiny URL service?(規模化Tiny URL服務)
  • Stateless frontend servers behind a load balancer(負載均衡)
  • Sharded/replicated database(on shortlink code)(數據庫備份化)
  • Memcached to scala read traffic(逐層加cache提高性能)
  • Spread write load(平分化)
  • Locally buffered evevt tracking + async flush to high-throughput messagequeue
  • Use a distributed unique IDgenerator(64-bit)

Performance

Cache is KEY!
  • Numbers Everyone Should Know
  • L1 cache reference 0.5ns
  • Branch mispredict 5ns
  • L2 cache reference 7ns
  • Mutex lock/unlock 25ns
  • Main memory reference 100ns
  • Compress 1K bytes with Zippy 3,000ns
  • Send 2K bytes over 1 Gbps network 20,000ns
  • Read 1 MB sequentially from memory 250,000ns
  • Round trip within same datacenter 500,000ns
  • Disk seek 10,000,000ns
  • Read 1 MB sequentially from disk 20,000,000ns
  • Send packet CA->Netherlands->CA 150,000,000ns

Estimation

How many piano tuners are there in the entire world?
Tiny URL:How much is total storage?
  • URL Length 10-1000 chars.
  • Total accumulated URL number 100M
  • New URL registrations are on the order 100,000/day(1/sec)
  • Redirect requests are on the order of 100M/day(1000/sec)

Design Pattern

23patterns
  • MVC(前后端分離,中間件連接)
  • Singleton(保證只有一個實例)
  • Factory(工業框架,生成一系列子類)
  • Iterator(迭代器,提供方法順序訪問聚合對象并且不暴露內部特征)
  • Decorator(裝飾器,為對象添加額外職責)
  • Facade
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,825評論 6 546
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,814評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,980評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,064評論 1 319
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,779評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,109評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,099評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,287評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,799評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,515評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,750評論 1 375
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,221評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,933評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,327評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,667評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,492評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,703評論 2 380

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,836評論 18 139
  • 兩個相愛的人,對未來充滿憧憬和希望,才會去創造帶著兩人生命印記的,新的小生命誕生。周而復始,人類生生不息。 幸運地...
    洛安娜閱讀 311評論 0 0
  • 關于一個人的夢與想。 思念真的是一個神奇事情。它能使人心情愉悅,愉悅的像飄浮在棉花上。也能使人跌...
    娜美raa閱讀 137評論 0 0
  • 聽過小郭推薦的《正念的奇跡》這段音頻之后,給我最多的感受就是人要感受當下,活在當下。 很多時候,我們都會覺得...
    孫倩閱讀 210評論 5 0