互聯(lián)網(wǎng)架構(gòu)的演變過(guò)程中的問(wèn)題(一)

? ? ? ? 互聯(lián)網(wǎng)架構(gòu)的演變狸剃,這是一個(gè)老生常談的話題付枫,現(xiàn)在網(wǎng)上有大量這樣的文章烹玉,基本都是從單機(jī)到水平拆分再到橫向拆分,最后分布式架構(gòu)阐滩、微服務(wù)等等二打。大家說(shuō)的都非常的精彩,但每個(gè)公司在真正實(shí)踐時(shí)卻非常非常的困難掂榔。比如:服務(wù)的橫向拆分中服務(wù)的邊界如何劃分继效,在數(shù)據(jù)水平拆分中很難找到一個(gè)全局的標(biāo)示來(lái)進(jìn)行拆分等等。今天我們就聊聊在各個(gè)階段演變過(guò)程中需要解決那些比較重要的問(wèn)題装获,及自己在實(shí)際工作中如何解決這些問(wèn)題的瑞信。

一、單機(jī)到集群?

? ? ? ? 這是一個(gè)比較簡(jiǎn)單和經(jīng)常發(fā)生的階段穴豫,在一個(gè)最初的小業(yè)務(wù)時(shí)都會(huì)進(jìn)行單機(jī)部署凡简,但隨著業(yè)務(wù)的發(fā)展單機(jī)不能支撐整個(gè)業(yè)務(wù)的發(fā)展,最快的提升系統(tǒng)能力的方法就是集群化精肃。單機(jī)到集群需要解決的問(wèn)題有:負(fù)載均衡器的引入秤涩、應(yīng)用的無(wú)狀態(tài)化。


集群化

? ? ? ?負(fù)載均衡器作為互聯(lián)網(wǎng)公司一般都會(huì)采用軟負(fù)載司抱,比如:lvs筐眷、nginx等等。這個(gè)比較簡(jiǎn)單有非常成熟的方案习柠。

? ? ? ? 應(yīng)用無(wú)狀態(tài)化:如果你的應(yīng)用從最開(kāi)始就是無(wú)狀態(tài)的那恭喜你這一步你就可以省略了匀谣,如果你的應(yīng)該不是無(wú)狀態(tài)的化照棋,那就要進(jìn)行無(wú)狀態(tài)改造了。無(wú)狀態(tài)化也有非常多的成熟方案武翎,比如:狀態(tài)集中管理必怜、會(huì)話的分配策略等等。這里需要注意的一點(diǎn)是升級(jí)過(guò)程中的問(wèn)題后频,會(huì)有狀態(tài)丟失的可能,這一點(diǎn)要特殊注意暖途。

二卑惜、數(shù)據(jù)庫(kù)壓力比較大緩存的引入

? ? ? ?緩存是一個(gè)非常神奇的東西,讓人又愛(ài)又恨啊驻售,愛(ài)她露久,她會(huì)讓你的系統(tǒng)處理能力大大提升,恨她欺栗,由于她的不穩(wěn)定原因容易引起系統(tǒng)雪崩毫痕。一般在數(shù)據(jù)庫(kù)壓力比較大的時(shí)候第一個(gè)想到的方案都是在應(yīng)用和數(shù)據(jù)層加入緩存層,來(lái)減少數(shù)據(jù)層的壓力迟几。其實(shí)引入緩存層主要是為了大大減少了數(shù)據(jù)庫(kù)的訪問(wèn)次數(shù)消请,并且緩存層的數(shù)據(jù)大部分情況是在內(nèi)存中,獲取速度比較快类腮。這里面有兩個(gè)問(wèn)題需要解決:1臊泰、一份數(shù)據(jù)存在兩個(gè)地方如何保證他們的一致性,2蚜枢、如果緩存失效所有壓力會(huì)瞬間打入數(shù)據(jù)層缸逃,引起數(shù)據(jù)層雪崩。這兩個(gè)問(wèn)題不解決使用緩存相當(dāng)于在系統(tǒng)里引入了一個(gè)隨時(shí)可能爆炸的炸彈厂抽,引狼入室啊需频。


緩存引入

? ? ? ? 數(shù)據(jù)一致性問(wèn)題:這是一個(gè)永恒的話題,這是一個(gè)21世紀(jì)一定能完美解決的問(wèn)題筷凤。好吧我們回來(lái)昭殉,一般在使用緩存的情況在新增和修改數(shù)據(jù)時(shí)會(huì)先在數(shù)據(jù)庫(kù)保證修改然后在同步修改緩存的數(shù)據(jù),但是但是如果在數(shù)據(jù)庫(kù)修改完整了系統(tǒng)出問(wèn)題了嵌施,緩存的數(shù)據(jù)沒(méi)有更新成功饲化,咋辦咋辦?由于緩存中有數(shù)據(jù)會(huì)在一段時(shí)間使用老數(shù)據(jù)吗伤,造成用戶獲取不到真正的數(shù)據(jù)吃靠,用戶會(huì)蒙逼了。如果保證緩存和數(shù)據(jù)庫(kù)的數(shù)據(jù)強(qiáng)一致性這個(gè)很難做到足淆,不一致有個(gè)時(shí)間窗口巢块,如果這個(gè)時(shí)間窗口足夠小礁阁,并且業(yè)務(wù)可以接受,那這個(gè)問(wèn)題就不存在了族奢。所以在同步更新緩存的情況下姥闭,加入一個(gè)異步更新緩存的功能,即在數(shù)據(jù)庫(kù)保存成功后同步修改緩存中的數(shù)據(jù)越走,然后在發(fā)送一個(gè)異步消息通知緩存有數(shù)據(jù)修改了棚品,然后緩存會(huì)去更新數(shù)據(jù)。這樣保證了同步修改失敗后廊敌,在非常短的時(shí)間內(nèi)可以再次修改緩存的數(shù)據(jù)铜跑。

? ? ? ? ?大量緩存失效問(wèn)題:如果發(fā)生這樣的問(wèn)題,基本都是災(zāi)難性的骡澈。多業(yè)務(wù)肯定會(huì)有一定損失的锅纺,在發(fā)生這樣的問(wèn)題時(shí),第一時(shí)間是降低業(yè)務(wù)的損失肋殴、最快的速度恢復(fù)業(yè)務(wù)囤锉。緩存的加載是需要時(shí)間的。雙緩存切換护锤,同一份數(shù)據(jù)進(jìn)行兩次緩存官地,應(yīng)用使用的是實(shí)時(shí)緩存+異步更新,備份緩存是異步更新烙懦。在發(fā)送實(shí)時(shí)緩存大量失效是讓?xiě)?yīng)用切換實(shí)時(shí)緩存和備份緩存区丑。備份緩存緩存了95%的數(shù)據(jù),對(duì)業(yè)務(wù)基本無(wú)損修陡。


雙緩存


三沧侥、杜絕裸奔,監(jiān)控的重要

? ? ? 在系統(tǒng)比較簡(jiǎn)單魄鸦、單一時(shí)監(jiān)控非常容易宴杀,并且感覺(jué)也不是那么重要,但當(dāng)系統(tǒng)越來(lái)越復(fù)雜拾因,引入的元素越來(lái)越多是旺罢,會(huì)發(fā)現(xiàn)系統(tǒng)越來(lái)越難以控制。如果不引入監(jiān)控绢记,就相當(dāng)于系統(tǒng)在裸奔扁达。每一個(gè)環(huán)節(jié)的出錯(cuò)都會(huì)導(dǎo)致系統(tǒng)的雪崩,必須要能夠從全局的視覺(jué)監(jiān)控系統(tǒng)各個(gè)環(huán)節(jié)的運(yùn)行情況蠢熄。負(fù)載均衡的監(jiān)控跪解、應(yīng)用的監(jiān)控、jvm的監(jiān)控签孔、服務(wù)器的監(jiān)控叉讥、緩存的監(jiān)控窘行、數(shù)據(jù)庫(kù)的監(jiān)控等等。監(jiān)控的方式有很多图仓,盡量采用對(duì)系統(tǒng)無(wú)侵入罐盔、無(wú)性能影響的監(jiān)控方式,比如采用日志分析的方式救崔。采用日志分析的方式一定要有非常好的日志打印規(guī)范惶看,做到日志打印格式統(tǒng)一、日志打印無(wú)死角六孵、日志打印可降級(jí)等等碳竟。

今天就寫(xiě)到這后面繼續(xù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末狸臣,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子昌执,更是在濱河造成了極大的恐慌烛亦,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件懂拾,死亡現(xiàn)場(chǎng)離奇詭異煤禽,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)岖赋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)檬果,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人唐断,你說(shuō)我怎么就攤上這事选脊。” “怎么了脸甘?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵恳啥,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我丹诀,道長(zhǎng)钝的,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任铆遭,我火速辦了婚禮硝桩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘枚荣。我一直安慰自己碗脊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開(kāi)白布橄妆。 她就那樣靜靜地躺著望薄,像睡著了一般疟游。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上痕支,一...
    開(kāi)封第一講書(shū)人閱讀 51,287評(píng)論 1 301
  • 那天颁虐,我揣著相機(jī)與錄音,去河邊找鬼卧须。 笑死另绩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的花嘶。 我是一名探鬼主播笋籽,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼椭员!你這毒婦竟也來(lái)了车海?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤隘击,失蹤者是張志新(化名)和其女友劉穎侍芝,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體埋同,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡州叠,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了凶赁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咧栗。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖虱肄,靈堂內(nèi)的尸體忽然破棺而出致板,到底是詐尸還是另有隱情,我是刑警寧澤咏窿,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布可岂,位于F島的核電站,受9級(jí)特大地震影響翰灾,放射性物質(zhì)發(fā)生泄漏缕粹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一纸淮、第九天 我趴在偏房一處隱蔽的房頂上張望平斩。 院中可真熱鬧,春花似錦咽块、人聲如沸绘面。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)揭璃。三九已至晚凿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瘦馍,已是汗流浹背歼秽。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留情组,地道東北人燥筷。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像院崇,于是被迫代替她去往敵國(guó)和親肆氓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

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