自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Twitter也在玩BT 最大微博站點程序部署技術探秘

開發(fā)
對于網(wǎng)站經(jīng)營者、創(chuàng)業(yè)者來說,“擴展性問題”是在網(wǎng)站流量成長過程中勢必會面對的問題,Twitter身為全球最大的微博服務站點,運用數(shù)千臺的服務器提供服務給來自全球各地的使用者,它是怎么解決的呢?答案是用BT!

對于網(wǎng)站經(jīng)營者、創(chuàng)業(yè)者來說,“擴展性問題”是在網(wǎng)站流量成長過程中勢必會面對的問題,如何建立一個具有可擴展性的架構(scalable architecture),是在規(guī)劃網(wǎng)站過程中不可或缺的專業(yè)知識。

51CTO推薦閱讀:大型B2C網(wǎng)站高性能可伸縮架構技術探秘

[[14397]]

如果服務本身的功能性合乎使用者需求,卻因為架構、程序效率、數(shù)據(jù)庫效率的問題導致服務器增多出現(xiàn)瓶頸,如何評估、分析網(wǎng)站效能瓶頸?理清問題后如何找出對應的解決方案,可以思考的相關議題包括:

◆如何有效率地理清問題?從客戶端端的數(shù)據(jù)(讀取時間)或是從服務器端的log日志、硬件的負載率?

◆網(wǎng)站效能瓶頸是出現(xiàn)在Client或Server端?是數(shù)據(jù)庫撐不住還是程序的執(zhí)行效率不好?是Request太多還是日志太大?

◆Web Server、DB server如何擠出更多的資源?擠不出資源后如何擴展?擴展后會遇到什么問題?

參考國外知名網(wǎng)站在架構上的作法是一種很好方式,盡管同那些網(wǎng)站的服務的規(guī)模可能無法相比,但根據(jù)正確的作法與經(jīng)驗踏出對的***步,肯定是有助于突破網(wǎng)站運營效率的瓶頸。

Twitter身為全球***的微博服務站點,運用數(shù)千臺的服務器提供服務給來自全球各地的使用者,然而每當網(wǎng)站內(nèi)容、應用程序有更新時,如何盡可能地在越短的時間內(nèi)將應用程序部署(deploy)到所有的服務器當中是相當重要的課題。

Twitter在早期便依賴Capistrano來進行應用程序的部署,每當有新版本的程序需要釋出時,Capistrano會根據(jù)預設好的各種設定、流程到Twitter所有的服務器上進行更新,在過去服務器還不多的情況下,一切都很美好。但隨著Twitter服務器數(shù)量的成長,到了幾百臺服務器時,事情已經(jīng)不再像過去一樣美好,甚至到后來擁有數(shù)千臺服務器時,更新的時間會耗費40分鐘。

Twitter針對這個問題,認為問題的關鍵在于:使用集中式的系統(tǒng),也就是所有的服務器要輪流排隊到同一臺版本控制系統(tǒng)上進行程序更新。Twitter最初的想法是將版本控制系統(tǒng)也做出分散式的架構,服務器的程序代碼更新就可以分散到不同的機器來壓縮部署時間,但事實上版本控制系統(tǒng)即使分散在多臺服務器上,也同樣會有這些服務器要更新日志的時間。因此Twitter發(fā)現(xiàn),需要一個完全去中心化、***像是BitTorrent,利用P2P的特色讓所有的節(jié)點都可以協(xié)助進行程序的更新。

以結果來看,在采用了BitTorrent的方式來更新服務器后,部署的時間從40分鐘大幅減少到只要12秒鐘!實在是非常驚人的改善,數(shù)千臺服務器的程序代碼居然只要短短12秒鐘就能運行完成。

Twitter也將此次部署流程改善的成果分享出來,叫做Murder,如果對于技術細節(jié)有興趣的讀者,可以再進行深入的研究,筆者簡單摘錄幾個重點如下:

◆Murder是以BitTornado為基礎開發(fā)出來的(BitTornado是某一種BitTorrent client);

◆Murder的定位是協(xié)助我們快速的將日志部署到大批服務器上;

◆利用BitTorrent的部署方式可避免防火墻的問題、擁有非常快的傳輸速度;

◆實際的部署程序代碼是搭配Capistrano進行的,網(wǎng)頁上有很清楚的說明。

【編輯推薦】

  1. 大型B2C網(wǎng)站高性能可伸縮架構技術探秘
  2. 大型網(wǎng)站動態(tài)應用系統(tǒng)架構設計思想
  3. 世界***的PHP站點 Facebook后臺技術探秘 
責任編輯:王曉東 來源: inside
相關推薦

2010-07-19 08:41:56

Facebook

2013-07-16 13:54:20

2010-11-12 09:04:03

TwitterAPI

2011-09-16 11:08:54

Emacstwitter微博

2012-04-12 09:05:45

2011-07-15 15:18:06

微博Twitter

2011-11-30 10:28:58

博科網(wǎng)絡

2014-08-21 10:17:45

WLAN

2023-11-29 07:17:51

微信機器人AI

2010-07-27 10:11:17

IT技術周刊

2011-02-24 11:19:08

Twitter微博應用應用布局

2023-10-30 09:38:12

GUI程序接口方法

2009-08-20 09:28:07

Twitter總部

2020-11-26 18:01:35

微博

2022-09-28 08:05:37

PythonGUI程序

2012-12-14 08:46:14

微博PageRank算法

2009-07-17 11:28:07

TwitterGoogle

2013-06-21 17:46:24

2017-03-07 10:37:26

微軟Azure Stack

2017-04-15 21:36:05

微服務新浪微博WOT
點贊
收藏

51CTO技術棧公眾號