三分鐘讀懂TT貓分布式、微服務(wù)和集群之路

針對新手入門的普及魁亦,有過大型網(wǎng)站技術(shù)架構(gòu)牛人路過,別耽誤浪費(fèi)了時間羔挡,閱讀之前洁奈,請確保有一定的網(wǎng)絡(luò)基礎(chǔ),熟練使用Linux绞灼,瀏覽大概需要3-5分鐘的時間利术,結(jié)尾有彩蛋。

分布式

小馬正在經(jīng)營一個在線購物網(wǎng)站低矮,名叫TT貓印叁,有商品管理、訂單管理、用戶管理轮蜕、支付管理昨悼、購物車等等模塊,每個模塊部署到獨(dú)立的云服務(wù)主機(jī)跃洛。

現(xiàn)在率触,程序員小明同學(xué)瀏覽TT貓,想買一款牛逼的cherry機(jī)械鍵盤來提升自己的工作效率汇竭。小明打開TT貓首頁葱蝗、搜索商品、瀏覽詳情以及評論细燎、添加購物車两曼、下單、支付等等一系列操作玻驻。小明同學(xué)一氣呵成悼凑,流暢的完成了購物,當(dāng)然也花費(fèi)了不少銀子击狮。

但是系統(tǒng)又是如何對這一系列操作佛析,如下圖錯綜復(fù)雜的調(diào)用關(guān)系(自行忽略部分細(xì)節(jié))。用戶看不見彪蓬,模不著寸莫,整個下單過程卻行走在網(wǎng)絡(luò)之間。

TT貓把所有功能模塊分布部署在不同的地方档冬,最終完成了用戶一系列的請求膘茎,這大概就是一個分布式系統(tǒng)吧。

微服務(wù)

博主認(rèn)為微服務(wù)是一種架構(gòu)酷誓,也是在分布式范疇之內(nèi)的披坏。多微才叫微?在分布式系統(tǒng)中盐数,微服務(wù)更加強(qiáng)調(diào)單一職責(zé)棒拂、輕量級通信(HTTP)、獨(dú)立性并且進(jìn)程隔離玫氢。

好了帚屉,沒什么好說的了,實(shí)踐出真知漾峡,建議大家多多了解 spring-cloud相關(guān)微服務(wù)組件攻旦。

TT貓,每年都會搞一些活動生逸,比如女生最愛的光棍節(jié)(雙11)堰塌,夜深人靜的時候會瞬間涌入大量用戶,指不定就會把某個服務(wù)打趴下荧飞。

這時候,問題來了用戶下單超時锋谐,或者直接500錯誤,如何去解決皱炉?

負(fù)載均衡集群

這種事情怎么可以在如此重要的活動中出現(xiàn)怀估,其實(shí)馬爸爸提前購買了多臺服務(wù)器,工程師們已分別把各個業(yè)務(wù)功能模塊復(fù)制部署了多份合搅。

每個相同功能的模塊多搀,它們構(gòu)成了一個組,并以單一系統(tǒng)的模式加以管理灾部。當(dāng)妹子進(jìn)行下單操作時康铭,實(shí)際上是跟一個集群組發(fā)生關(guān)系,但系統(tǒng)會確保只跟其中一個發(fā)生了關(guān)系赌髓,具體跟誰从藤,集群組有自己的調(diào)度算法,不要擔(dān)心跟妹子發(fā)生不了關(guān)系锁蠕。

舉個古代猥瑣而不淫蕩的例子吧夷野,如果你生活在古代,年18荣倾,未婚悯搔,高富帥,急需解決個人生理問題舌仍。故妒貌,你來到了傳說中的風(fēng)月場,咳咳铸豁,這個古代可是合法的灌曙。這時候老鴇或者大茶壺過來招呼你了,如果沒有特殊要求节芥,你會被帶進(jìn)一個屋里在刺,里面有個風(fēng)塵女子……

畫風(fēng)一轉(zhuǎn),有沒有閃瞎自己的程序員萬年鈦合金狗眼头镊。你可以這么理解增炭,老鴇就是負(fù)載均衡器,內(nèi)置調(diào)度算法拧晕,風(fēng)塵女子就是集組其中的一個。

好了梅垄,言歸正傳厂捞,省略號自行腦補(bǔ)输玷,小伙伴們看到這里可能會問了,平時生產(chǎn)環(huán)境中我們都用什么做負(fù)載均衡器靡馁。

財大氣粗的用硬件F5

不差錢的使用DNS負(fù)載均衡

技術(shù)牛逼的用LVS

苦逼的創(chuàng)業(yè)型小公司只能使用Nginx

當(dāng)然欲鹏,負(fù)載均衡器不止以上幾種,有興趣的同學(xué)自行谷歌了解臭墨。

《論知行》篇中說:知其然知其所以然赔嚎,簡單說下這幾種負(fù)載均衡器到底是如何行走于網(wǎng)絡(luò)中的吧,學(xué)過網(wǎng)絡(luò)的朋友大概都清楚七層網(wǎng)絡(luò)模型胧弛。

首先一張圖尤误,讓大家重溫一下大學(xué)基礎(chǔ)課程。

有沒有瞬間課堂書本的感覺结缚,不過癮损晤?再來一張TCP/IP五層模型。

在每一層都工作著不同的設(shè)備红竭,比如財大氣粗尤勋,不差錢的國企使用的F5工作在4-7層,一般互聯(lián)網(wǎng)企業(yè)使用的LVS工作在傳輸層茵宪,使用最廣泛的Nginx工作在應(yīng)用層最冰。

最后來聊一下DNS負(fù)載均衡,雖然DNS最原始也是最簡單的方法稀火,但是DNS負(fù)載均衡的控制權(quán)在域名服務(wù)商手里暖哨,NDS存在多級解決,緩存A記錄的問題憾股,以及網(wǎng)站自身無法做更多的管理鹿蜀。這樣導(dǎo)致了一般中小公司很少使用。

當(dāng)然服球,自身實(shí)力夠硬茴恰,DNS負(fù)載均衡也是個不錯的選擇。下圖是檢測TT貓域名的A記錄得到的部分信息斩熊,僅供參考往枣,自行領(lǐng)悟。

高可用集群

既然是集群粉渠,就不能夠出現(xiàn)單點(diǎn)故障分冈,如果大家關(guān)注云服務(wù),可能會接觸到以下詞匯霸株,“雙機(jī)熱備”雕沉,“兩地三中心”等等詞匯。

雙擊熱備是高可用的一種體現(xiàn)形式去件,如上圖所示坡椒,生產(chǎn)環(huán)境中我們存在兩個負(fù)載均衡節(jié)點(diǎn)扰路,主節(jié)點(diǎn)處于激活狀態(tài),另一個節(jié)點(diǎn)處于備用狀態(tài)倔叼,當(dāng)主節(jié)點(diǎn)意外宕機(jī)汗唱,可以通過keepalived檢測并迅速切換到備用服務(wù),保障業(yè)務(wù)正常運(yùn)轉(zhuǎn)丈攒。

至于兩地三中心哩罪,下圖可能會讓大家理解的更加透徹,圖片源于網(wǎng)絡(luò)巡验。

彈性云

小馬哥為了準(zhǔn)備雙十一际插,購置了大量服務(wù)器,但是活動一過深碱,平時的用戶訪問量并不能滿足服務(wù)器的接客能力腹鹉,導(dǎo)致大量服務(wù)器處于空窗期。

這還了得敷硅,不能閑著啊功咒,精明的小馬哥一拍腦袋,組建了TT云團(tuán)隊绞蹦。通過多年的努力開發(fā)了按量付費(fèi)云力奋、彈性IP、共享帶寬等等產(chǎn)品為中小企業(yè)開源節(jié)流幽七。

故障轉(zhuǎn)移

小明同學(xué)覺得這款鍵盤不錯景殷,美滋滋的點(diǎn)擊購買按鈕,突然跳到了登陸頁面澡屡。

什么鬼猿挚,褲子我都脫了,你就給我看這個驶鹉?普通用戶可能不會覺得有什么問題绩蜻,重新登陸一次就是了。但是小明作為一只嚴(yán)謹(jǐn)?shù)某绦蛟呈衣瘢肱靼灼渲械降装l(fā)生了什么办绝。

經(jīng)過仔細(xì)的查閱資料分析,小明得出了以下結(jié)論:

發(fā)生以上故障姚淆,小明以為自己下單的那臺服務(wù)掛機(jī)了孕蝉,請求被分發(fā)到另一臺服務(wù)上,但為什么會跳到登陸頁面呢腌逢?作為一名程序員降淮,小明清楚的知道服務(wù)分為有狀態(tài)和無狀態(tài)的,盡管我們平時的HTTP請求是無狀態(tài)的搏讶,但是一般會通過cookie或者session來確定用戶狀態(tài)骤肛。

到這里纳本,各位看官應(yīng)該明白到底是個什么鬼了吧。就拿我們比較熟悉的Tomcat來說腋颠,我們的用戶信息一般存儲在session中,而session存儲在Tomcat內(nèi)存中吓笙。瀏覽器通過cookie中的JSESSIONID來與服務(wù)器進(jìn)行認(rèn)證淑玫。

然服務(wù)器掛了,下單請求被分發(fā)到另一臺服務(wù)面睛,自然小明再也找不到他的session了絮蒿。

小明同學(xué)把問題反饋給了TT貓,小馬哥一看這還得了叁鉴,集群都做了還差這點(diǎn)土涝,于是趕緊叫工程師們拿出解決方案。

工程師最終提出了兩種方案:

服務(wù)器用戶狀態(tài)復(fù)制(成本大幌墓,需要軟硬件支持但壮,有延遲,存在失敗的風(fēng)險)

統(tǒng)一存儲用戶狀態(tài)(我不說話常侣,我就笑笑)

最終蜡饵,工程師們采用第二種方案,使用Redis存儲用戶狀態(tài)數(shù)據(jù)胳施。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末溯祸,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子舞肆,更是在濱河造成了極大的恐慌焦辅,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件椿胯,死亡現(xiàn)場離奇詭異筷登,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)压状,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進(jìn)店門仆抵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人种冬,你說我怎么就攤上這事镣丑。” “怎么了娱两?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵莺匠,是天一觀的道長。 經(jīng)常有香客問我十兢,道長趣竣,這世上最難降的妖魔是什么摇庙? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮遥缕,結(jié)果婚禮上卫袒,老公的妹妹穿的比我還像新娘。我一直安慰自己单匣,他們只是感情好夕凝,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著户秤,像睡著了一般码秉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鸡号,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天转砖,我揣著相機(jī)與錄音,去河邊找鬼鲸伴。 笑死府蔗,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的挑围。 我是一名探鬼主播礁竞,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼杉辙!你這毒婦竟也來了模捂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤蜘矢,失蹤者是張志新(化名)和其女友劉穎狂男,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體品腹,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡岖食,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了舞吭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泡垃。...
    茶點(diǎn)故事閱讀 38,683評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖羡鸥,靈堂內(nèi)的尸體忽然破棺而出蔑穴,到底是詐尸還是另有隱情,我是刑警寧澤惧浴,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布存和,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏捐腿。R本人自食惡果不足惜纵朋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望茄袖。 院中可真熱鬧操软,春花似錦、人聲如沸绞佩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽品山。三九已至,卻和暖如春烤低,著一層夾襖步出監(jiān)牢的瞬間肘交,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工扑馁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留涯呻,地道東北人。 一個月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓腻要,卻偏偏與公主長得像复罐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子雄家,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,566評論 2 349

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

  • 分布式架構(gòu)實(shí)踐——負(fù)載均衡 也許當(dāng)我老了效诅,也一樣寫代碼;不為別的趟济,只為了愛好乱投。 1 什么是負(fù)載均衡(Load ba...
    Bobby0322閱讀 7,383評論 1 27
  • 【摘要】 面對大量用戶訪問、高并發(fā)請求顷编,海量數(shù)據(jù)戚炫,可以使用高性能的服務(wù)器、大型數(shù)據(jù)庫媳纬,存儲設(shè)備双肤,高性能Web服務(wù)器...
    靜修佛緣閱讀 4,539評論 0 24
  • Linux服務(wù)器集群系統(tǒng)各概念辨析 計算機(jī)集群 WEB的負(fù)載均衡、集群钮惠、高可用解決方案 計算機(jī)集群 計算機(jī)集群簡稱...
    Zhang21閱讀 3,271評論 0 18
  • 結(jié)束了一周繁忙的工作茅糜,趁著周末,小編手中的鍵盤早已饑渴難耐了萌腿,想知道上期省略號中發(fā)生了什么有趣的故事么限匣?且聽小編娓...
    小柒2012閱讀 935評論 0 8
  • 億級Web系統(tǒng)搭建:單機(jī)到分布式集群 當(dāng)一個Web系統(tǒng)從日訪問量10萬逐步增長到1000萬,甚至超過1億的過程中,...
    meng_philip123閱讀 767評論 1 23