【伯樂在線導(dǎo)讀】:通常當(dāng)我們對擴(kuò)展性感興趣時,我們東尋西找鏈接、書籍和參考資料。這篇短文是 Leandro 精心挑選出的參考資料,并給出了學(xué)習(xí)路徑,他希望對你的學(xué)習(xí)之旅有所幫助。
01359D07-774C-4DEA-98AF-476A7AE83E4E
聲明:你不需要有 N 臺機(jī)器來搭建一個高擴(kuò)展性系統(tǒng),你只要使用 Vagrant 就能很容易模擬成 N 臺機(jī)器。
學(xué)習(xí)參考資料:
既然你可以通過虛擬服務(wù)器來武裝自己了,那你不僅要讀這些文章,而且還要動手實(shí)踐。
首先,看看《使用 Nodejs +Nginx + 靜態(tài)緩存應(yīng)用 + 負(fù)載均衡器 + 測試教程》來預(yù)熱一下,只需要 7 分鐘。
把這些單詞放入你的詞匯表 scalability(擴(kuò)展性)、failover(災(zāi)備)、 single point of failure (SPOF)(單點(diǎn)故障)、 sharding(分區(qū))、 replication(復(fù)制) 和 load balancing(負(fù)載均衡) 。即使你根本不理解它們,也不要緊。
為了對擴(kuò)展性系統(tǒng)有總體概念和更好地了解來龍去脈,我強(qiáng)烈推薦你閱讀《Scalable Web Architecture and Distributed Systems(擴(kuò)展性web架構(gòu)和分布式系統(tǒng))》。這是一篇非常棒的導(dǎo)論。
在對概念有清晰了解以后,你現(xiàn)在可以開始學(xué)習(xí)如何使用 load balancer(負(fù)載均衡器) 和處理一些你將要面對的決策問題。你可以嘗試運(yùn)行haproxy,并且避免它產(chǎn)生single point of failure too(單點(diǎn)故障)。
通過 實(shí)現(xiàn)300萬個請求/秒的服務(wù) 挑戰(zhàn)你自己,完成這項任務(wù)你可能需要 生成300萬個請求,調(diào)優(yōu)Web服務(wù)器 和 規(guī)?;y試。
你的應(yīng)用已經(jīng)可以擴(kuò)展了,現(xiàn)在你輪到數(shù)據(jù)庫了。它是你應(yīng)用中非常重要的一部分,在這里我推薦你至少要閱讀,MongoDB 是如何通過 sharding 和 replication 來擴(kuò)展數(shù)據(jù)庫,還有Cassandra 是如何通過 linear scalability(線性擴(kuò)展)和 adding nodes to the cluster(在集群中添加節(jié)點(diǎn)) 來擴(kuò)展。
你的應(yīng)用和數(shù)據(jù)庫現(xiàn)在有很好的擴(kuò)展性和容錯能力。有利于節(jié)省服務(wù)器不必要的工作負(fù)載,然后會有更快的用戶響應(yīng)。
假定我們已經(jīng)在一個單獨(dú)的數(shù)據(jù)中心部署了這套系統(tǒng),現(xiàn)在我們有另一個SPOF。所有的服務(wù)器都在同一個地方,可能會有自然災(zāi)害,或者僅僅是斷電。好消息,Cassandra可以非常方便地支持多個數(shù)據(jù)中心, 看看 Google 是如何處理的。如果你的用戶在巴西,不要讓他訪問時間過長。記住,即使在最好的情況下, 我們?nèi)匀粫醒舆t。
更多信息請查看IT技術(shù)專欄