小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

做架構(gòu)優(yōu)化的方法 - 84年的礦泉水 - 博客園

 jack.wang@net 2010-08-25


        一直有很多人問(wèn)做架構(gòu)的方法。其實(shí)架構(gòu)不是做出來(lái)的,而是改出來(lái)的。但是萬(wàn)變不離其宗啊--萬(wàn)事都是有規(guī)律和方法的嘛!去年我有幸做了一個(gè)分布式文件系統(tǒng)(DFS)優(yōu)化的架構(gòu)工作,和大家sharing。

         分布式文件系統(tǒng)(DFS),關(guān)于這個(gè)是什么東西,不知道的各位同仁請(qǐng)g之。

         首先要明白自己的問(wèn)題在哪里?我們的問(wèn)題在于圖片的量太大,導(dǎo)致了站點(diǎn)很卡。這是外表現(xiàn)象,那么里面到底是什么問(wèn)題呢?為什么要用DFS呢?他主要用來(lái)干什么呢?怎么用呢?

         DFS的作用說(shuō)白了很簡(jiǎn)單。目前在我們的系統(tǒng)中,主要就是用來(lái)解決用戶上傳圖片的問(wèn)題(不是圖片的問(wèn)題嗎,那就解決它)。是不是有人大驚小怪了?上傳圖片 還要單獨(dú)用一個(gè)DFS系統(tǒng)?這不是復(fù)雜設(shè)計(jì)了嗎?你直接把文件上傳到站點(diǎn)根目錄不就完了嗎?是的,這是一種解決方法。但是你有沒(méi)有想過(guò)我們的圖片有多大的 量?我們的圖片需要在線維護(hù)的少說(shuō)是TB級(jí)別的。還有我們的Web服務(wù)器是由F5做負(fù)載均衡的,也就是說(shuō)不是單獨(dú)一臺(tái)web服務(wù)器,所以你的圖片必須要集 中起來(lái)管理維護(hù)了。

        也許有人會(huì)說(shuō),直接把圖片放到數(shù)據(jù)庫(kù)!其實(shí)以前我們就是這么做的(因?yàn)橐郧暗牧坎淮螅?。這樣的好處是管理方便,壞處是相當(dāng)于給數(shù)據(jù)庫(kù)安裝了病毒(量大就 卡)。當(dāng)圖片的量上來(lái)的時(shí)候,只能升級(jí)硬件,但是升級(jí)硬件那是一條死胡同,你早晚得把硬件策略換到軟件策略,taobao就是一個(gè)很好的例子。

       還有解決方法嗎?WS/emoting?!是的,如果速度夠快的話也是一種,但是現(xiàn)實(shí)是很殘酷的!我們?cè)?jīng)做過(guò)嘗試,包括用net寫了一個(gè)tcp的服務(wù), 最終還是選擇了放棄。原因是速度實(shí)在不敢恭維,其二,windows的磁盤管理對(duì)于這種純文件服務(wù),不是太管用。

        那么這個(gè)時(shí)候,就想到了linux,天生的內(nèi)存和文件服務(wù)器。但是要在linux上跑,你的選擇就是c,c++,java,另外一些腳本語(yǔ)言的東西。語(yǔ)言 和平臺(tái)不重要?不,很重要。因?yàn)橄旅婺阋薷乃?,維護(hù)它,管理它。選擇一個(gè)你不熟悉的語(yǔ)言和平臺(tái)無(wú)疑就是噩夢(mèng)的開(kāi)始。對(duì)我們這個(gè)net團(tuán)隊(duì)而言,那個(gè)最可 控呢?顯然是c。c++是一門正房地位,二奶權(quán)益,野花誘惑的語(yǔ)言,很少能做到全局控制。java,這個(gè)……,還是不要了吧?!現(xiàn)在留下的唯一一個(gè)問(wèn)題就 是你是自己寫?還是準(zhǔn)備找一個(gè)開(kāi)源的呢?答案是看看你有多少成本。

       成本不管是錢,還有時(shí)間和人。對(duì)我們而言,錢倒不是大問(wèn)題,但是做DFS的時(shí)候,我們組只有兩個(gè)人,另外一個(gè)還在那邊做緩存的優(yōu)化,根本沒(méi)有時(shí)間做 DFS,我自從學(xué)校出來(lái)后c已經(jīng)基本上還給老師了。短時(shí)間無(wú)法接手c。所以自己寫的話,時(shí)間長(zhǎng)不說(shuō),風(fēng)險(xiǎn)還很大。我和他討論后還是選擇了開(kāi)源。

       開(kāi)源是一個(gè)不錯(cuò)的東西。每每在關(guān)鍵的時(shí)候能救你一把!當(dāng)然了開(kāi)源的軟件不是商業(yè)軟件,別要求太高,別指望它像MS的東西那樣,拿來(lái)就用。你得根據(jù)你的需求 自己去改。我們改了幾處和我們需求不符合的地方。然后開(kāi)源軟件一定要測(cè)試。要做非常復(fù)雜和全面的測(cè)試。性能,功能,災(zāi)難等等,這些測(cè)試一定要做,而且要做 的全。我們的做法是由我寫測(cè)試用例,因?yàn)橐话愣灾挥屑軜?gòu)人員和開(kāi)發(fā)人員才知道這個(gè)東西最可能出現(xiàn)的問(wèn)題在哪里,那么就重點(diǎn)測(cè)。你的目標(biāo)其實(shí)很簡(jiǎn)單,就是 當(dāng)你把你的測(cè)試用例發(fā)給測(cè)試人員的時(shí)候,測(cè)試人員能看懂這個(gè)文檔并且“哭出來(lái)”,那么如果在這種情況下測(cè)試通過(guò)的話,這個(gè)開(kāi)源軟件基本上已經(jīng)夠用了。

        這里為什么要先把測(cè)試放在前面呢?開(kāi)源軟件很多時(shí)候都不是非??孔V的,特別在一些極端情況下的功能和性能問(wèn)題,所以一定要先測(cè)試,測(cè)試完了,能滿足自己的 功能和性能需求了,你再去真正開(kāi)始做細(xì)致的業(yè)務(wù)分析,再怎么樣去搞定這個(gè)東西。是不是有人會(huì)問(wèn),你不知道業(yè)務(wù)需求什么,你怎么選型,怎么安排測(cè)試?你肯定 知道大概要什么吧?你不知道?開(kāi)玩笑,你不知道要什么你優(yōu)化這個(gè)干嗎?你肯定是知道了問(wèn)題再去解決這個(gè)問(wèn)題的嘛!這個(gè)問(wèn)題少說(shuō)也占80%吧?下面的20% 是細(xì)微的一些細(xì)節(jié)。做架構(gòu)首要抓西瓜,實(shí)在不得已才丟芝麻。

       下一步就是怎么樣優(yōu)化你的系統(tǒng)。先要做一些調(diào)查。業(yè)務(wù)組是首當(dāng)其沖,因?yàn)樗麄兪且痪€的工作人員,他們對(duì)于客戶需要什么,他們需要什么無(wú)比的了解。所以不要 放過(guò)。第二個(gè)是誰(shuí)?以前做架構(gòu)的那個(gè)人,他肯定知道以前為什么怎么做,怎么做的好處和壞處,等等。所以這個(gè)人也有價(jià)值。第三個(gè)呢?你的領(lǐng)導(dǎo)?。∷麑?duì)于這個(gè) 東西肯定有自己的想法,比如一些性能問(wèn)題的要求等等。把這些全部收集起來(lái),然后一個(gè)一個(gè)看你測(cè)試的功能點(diǎn)能否滿足?能,那么就萬(wàn)事大吉,不能?辛苦一下, 自己動(dòng)手改一下唄!

       這樣,再經(jīng)過(guò)測(cè)試人員測(cè)試一下,你的系統(tǒng)基本上已經(jīng)沒(méi)啥問(wèn)題了。

      你上面去調(diào)查了細(xì)節(jié)的需求,你是不是對(duì)你這個(gè)東西很明白了?是不是可以做出最適合你的架構(gòu)出來(lái)了?比如是否需要讀寫分離,是否需要熱備份等等。這樣架構(gòu)圖畫出來(lái)后,和運(yùn)維兄弟商量一下是不是就八九不離十了?

      那么你下面還要做什么?跟蹤這個(gè)優(yōu)化方案,至少1-2年,在這1-2年內(nèi),你還會(huì)碰到不同BT的需求,不管這些需求是因?yàn)槟愕氖韬觯€是運(yùn)維人員的管理方 便等等原因??傊?,總會(huì)有更改在等著你。也許你認(rèn)為這些需求實(shí)在是太無(wú)語(yǔ),但是存在即合理。所以面對(duì)它,解決它,這才是你一個(gè)人的價(jià)值體現(xiàn)。聽(tīng)過(guò)一句話 嗎?20%的人完成了公司80%有價(jià)值的工作,80%的人完成了公司20%有價(jià)值的工作。不管你做什么,總要做前面那個(gè)20%。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多