(GeekBand)系統(tǒng)設(shè)計與實踐 系統(tǒng)設(shè)計七劍客

大綱

  • 同步
  • 網(wǎng)絡(luò)
  • 數(shù)據(jù)庫
  • 分布式
  • 性能
  • 估算
  • 面向?qū)ο?/li>
案例
  • 社交網(wǎng)站信息流
  • 日志統(tǒng)計
  • 網(wǎng)絡(luò)爬蟲
  • 電商產(chǎn)品頁面

Concurrency

Thread vs. Process

Consumer and Producer

Blockingqueue

Tracking:(log記錄)

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

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

Network

OSI模型(上到下封包)

  • Application Layer(*http1.0/1.1協(xié)議,應(yīng)用層)
  • Presentaation Layer(應(yīng)用層)
  • Session Layer(會話層)
  • Transport Layer(*TCP,UDP協(xié)議禽篱,傳輸層)
  • Network Layer(網(wǎng)絡(luò)層)
  • Data Link Layer(數(shù)據(jù)連接層)
  • Physical Layer(物理層)

Visit URL

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

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

  1. 訪問DNS
  2. DNS返回網(wǎng)頁服務(wù)器IP地址
  3. 與網(wǎng)頁服務(wù)器建立連接(三次無首惊完,80端口)
  4. 瀏覽器與服務(wù)器建立http會話(接受數(shù)據(jù))
  5. 瀏覽器解析數(shù)據(jù),渲染網(wǎng)頁
  6. 關(guān)閉瀏覽器褒侧,終止http會話

Database

Relational DB vs. KV Store(關(guān)系型數(shù)據(jù)庫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?(規(guī)亩范簦化Tiny URL服務(wù))
  • Stateless frontend servers behind a load balancer(負(fù)載均衡)
  • Sharded/replicated database(on shortlink code)(數(shù)據(jù)庫備份化)
  • 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(工業(yè)框架,生成一系列子類)
  • Iterator(迭代器碎赢,提供方法順序訪問聚合對象并且不暴露內(nèi)部特征)
  • Decorator(裝飾器低剔,為對象添加額外職責(zé))
  • Facade
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市揩抡,隨后出現(xiàn)的幾起案子户侥,更是在濱河造成了極大的恐慌,老刑警劉巖峦嗤,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蕊唐,死亡現(xiàn)場離奇詭異,居然都是意外死亡烁设,警方通過查閱死者的電腦和手機(jī)替梨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來装黑,“玉大人副瀑,你說我怎么就攤上這事×堤罚” “怎么了糠睡?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長疚颊。 經(jīng)常有香客問我狈孔,道長,這世上最難降的妖魔是什么材义? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任均抽,我火速辦了婚禮,結(jié)果婚禮上其掂,老公的妹妹穿的比我還像新娘油挥。我一直安慰自己,他們只是感情好款熬,可當(dāng)我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布深寥。 她就那樣靜靜地躺著,像睡著了一般贤牛。 火紅的嫁衣襯著肌膚如雪翩迈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天盔夜,我揣著相機(jī)與錄音,去河邊找鬼。 笑死喂链,一個胖子當(dāng)著我的面吹牛返十,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播椭微,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼洞坑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蝇率?” 一聲冷哼從身側(cè)響起迟杂,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎本慕,沒想到半個月后排拷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡锅尘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年监氢,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片藤违。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出私股,到底是詐尸還是另有隱情割捅,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布璧榄,位于F島的核電站特漩,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏犹菱。R本人自食惡果不足惜拾稳,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望腊脱。 院中可真熱鬧访得,春花似錦、人聲如沸陕凹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杜耙。三九已至搜骡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間佑女,已是汗流浹背记靡。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工谈竿, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人摸吠。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓空凸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親寸痢。 傳聞我的和親對象是個殘疾皇子呀洲,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)啼止,斷路器道逗,智...
    卡卡羅2017閱讀 134,652評論 18 139
  • 兩個相愛的人,對未來充滿憧憬和希望献烦,才會去創(chuàng)造帶著兩人生命印記的滓窍,新的小生命誕生。周而復(fù)始仿荆,人類生生不息贰您。 幸運地...
    洛安娜閱讀 309評論 0 0
  • 關(guān)于一個人的夢與想。 思念真的是一個神奇事情拢操。它能使人心情愉悅锦亦,愉悅的像飄浮在棉花上。也能使人跌...
    娜美raa閱讀 131評論 0 0
  • 聽過小郭推薦的《正念的奇跡》這段音頻之后令境,給我最多的感受就是人要感受當(dāng)下杠园,活在當(dāng)下。 很多時候舔庶,我們都會覺得...
    孫倩閱讀 200評論 5 0