文章講述了在應對春節可能帶來的挑戰,微博做了哪一些準備。
方法:1、為應對訪問量的劇增,在現有的服務下進行壓力測試,確認現在有的服務可以承受多大的壓力,從而決定需要擴充多少的伺服器。在訪問量比較少的時候,按10%,20%...的比例把部分服務池裡的伺服器503處理,然後觀察伺服器壓力。假設有300臺伺服器,關掉200臺之後,伺服器接近負載極限的。這樣就可以計算出300臺伺服器可以承受現有流量3倍的流量。
2、為應對同時幾萬條/s的寫操作,需要測試佇列機的抗壓能力。微博是採用非同步訊息佇列的方法來寫入資料的,於是在設計上先把訊息佇列進行拆分,分為短和長兩種訊息佇列,512位元組以內的微博進入短訊息佇列,反之進入長訊息佇列。由於訊息越少,處理讀寫越快,而因為大部分訊息都是低於512個位元組的(99%),這樣就使得長的資訊不會阻塞簡訊息的處理,提高併發和讀寫效率。
除了分佇列,還對佇列機進行測試,先把佇列機關閉,讓訊息阻塞在佇列裡,等累積到一定的量,再把佇列機開啟,觀察佇列機的效能瓶頸。
5、異地容錯處理,機器由於天氣或是人為原因可能宕機,如果你把所有的服務部署在同乙個機房裡,當這個機房出問題時,那麼完蛋,所有業務都無法工作。所以像銀行一樣,需要兩地三中心的處理方式。把伺服器部署到多個地方,當乙個機房出問題時,通過 dns切換把這部分使用者引到其他機房去。
微博春晚背後的技術故事
一年一度的春晚再次落下帷幕,而微博也順利地陪伴大家度過除夕之夜。談及馬年春晚,人們首先想到的不是春晚上精彩的節目,而是微博上的吐槽,邊看春晚,邊刷微博,邊吐槽,已經成了國人的習慣。看春晚不再是為了看節目,而是為了能夠在微博上吐槽,知道大家在吐槽什麼,更有人戲稱不是春晚成就了微博,而是微博拯救了春晚。...
解讀微信終端開源背後的故事
問 mars的研發有沒有借用一些其它開源產品?趙原 最開始研發時,mars與業務相關,它的優化必須結合內部業務來完成,所有的技術都是自主研發完成。當然我們也會使用例如openssl這樣的一些非常基礎的開源庫。在mars選擇開源後,我們將其中很多業務相關的部分移除掉,將它改造成誰都可以使用的技術。趙原...
微信支付商戶系統架構背後的故事
本文由李躍森發表於雲 社群專欄 postgresql xc在事務管理系統方案本身有乙個明顯的缺點,那就是事務管理機制會成為系統的瓶頸,gtm global transaction manager全域性事務管理器 會限制系統的擴充套件規模。如圖1所示,是每個請求過來cn coordinator 協調節...