<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    京山游俠

    專注技術(shù),拒絕扯淡
    posts - 50, comments - 868, trackbacks - 0, articles - 0
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

      SpringSide是個(gè)好東西,對(duì)我來(lái)說(shuō),它的好主要體現(xiàn)在兩個(gè)方面:一、它提供了一個(gè)敏捷開發(fā)的框架,省去了我自己整合Spring、Hibernate、Struts、ActiveMQ等等開源組件的時(shí)間,而且還是最佳實(shí)踐;二、它指導(dǎo)了我的學(xué)習(xí)目標(biāo),在SpringSide中整合的各種組件,都是在同一類組件中最優(yōu)秀的,而且要想熟練使用這些組件,都必須對(duì)它們進(jìn)行深入的系統(tǒng)的學(xué)習(xí)。

      本來(lái)以為我會(huì)在SpringSide開發(fā)實(shí)戰(zhàn)系列中寫更多的文章,但是寫到現(xiàn)在,我認(rèn)為應(yīng)該要寫結(jié)局了,為什么呢?因?yàn)樵谑褂肧pringSide進(jìn)行項(xiàng)目開發(fā)的過(guò)程中,我越來(lái)越感覺(jué)到項(xiàng)目絕對(duì)不是各種組件的簡(jiǎn)單堆砌,而是程序員要不斷有自己的想法和創(chuàng)意,并能夠抽象到一個(gè)高度。這也正是為什么我的文章從第一篇到第八篇越來(lái)越偏離SpringSide的核心了。在這里,我主要想談?wù)劤绦騿T的境界。以下觀點(diǎn)純屬個(gè)人看法,歡迎大家探討。

      第一層境界:從不能到能。

      可以這么說(shuō),早在7年前我就已經(jīng)熟練掌握C語(yǔ)言、Visual FoxPro數(shù)據(jù)庫(kù)、HTML、CSS和JavaScript,C語(yǔ)言和Visual FoxPro是學(xué)校教的,HTML、CSS和JavaScript是自學(xué)的,同時(shí),我還自學(xué)了Flash動(dòng)畫制作和Photoshop圖像處理。但是,我那時(shí)候還不知道應(yīng)用程序開發(fā),學(xué)的這些東西無(wú)非就是好玩,偶爾參加一次學(xué)校主辦的網(wǎng)頁(yè)設(shè)計(jì)大賽而已。

      我開發(fā)的第一個(gè)應(yīng)用是《銀符英語(yǔ)在線》,使用的是ASP + SQL Server 2000,時(shí)間是2004年,那時(shí)我剛考過(guò)軟件設(shè)計(jì)師(原高級(jí)程序員),有人找我做程序,他說(shuō)想做一個(gè)英語(yǔ)四六級(jí)的在線考試系統(tǒng),問(wèn)我能不能做到,我毫不猶豫就說(shuō)能。我想我確實(shí)是具有軟件設(shè)計(jì)方面的天賦,用了一個(gè)星期設(shè)計(jì)出數(shù)據(jù)庫(kù),再用一個(gè)星期寫了一個(gè)Demo,一下子就把他征服了,于是,他當(dāng)老板,我當(dāng)程序員,一起進(jìn)行在線英語(yǔ)考試方面的開發(fā)。

      在這段時(shí)間,我覺(jué)得我不折不扣就是處于這第一層境界。JScript我早已是滾瓜亂熟,ASP教程更隨處可得。在這段時(shí)間里,我用全JScript代碼實(shí)現(xiàn)了用戶認(rèn)證和權(quán)限管理,用Visual C++寫了個(gè)COM組件進(jìn)行數(shù)據(jù)的加密和解密,還在網(wǎng)上到處搜索文件上傳和動(dòng)態(tài)圖片生成方面的解決辦法。當(dāng)時(shí),我覺(jué)得我的開發(fā)過(guò)程充實(shí)而滿足;現(xiàn)在看來(lái),我只不過(guò)是一個(gè)重復(fù)發(fā)明輪子的傻冒。

      在10個(gè)月的時(shí)間里,我把這個(gè)程序從1.0版開發(fā)到3.0版,功能上進(jìn)行了不少升級(jí)。但是我認(rèn)為升級(jí)最大的還是我的技術(shù),我盡我最到的能力將代碼與網(wǎng)頁(yè)分離,盡我最到的能力減少代碼的重復(fù),甚至已經(jīng)基本做到使用模式來(lái)讓程序更加容易擴(kuò)充和維護(hù)。我所做的一切,與現(xiàn)代的一些Web開發(fā)框架已經(jīng)不謀而合。但是,以我當(dāng)時(shí)的內(nèi)力,確實(shí)沒(méi)有辦法將之抽象為一個(gè)框架。我的程序中依然充滿了意大利面條式的代碼,而且在在線人數(shù)多的時(shí)候,網(wǎng)頁(yè)會(huì)慢得象蝸牛爬。

      第二層境界:從能做到做得漂亮

      2005年,我開始接觸Java,以我的基礎(chǔ),自然是很快就學(xué)會(huì)了Java的語(yǔ)法并進(jìn)軍J2EE。我覺(jué)得Java開源世界給了我不少能量,在這兩年里,我的進(jìn)步速度是呈指數(shù)式的。以我現(xiàn)在的水平,僅使用JSP和Servlet,已經(jīng)足以解決絕大部分的需求。然而,僅使用JSP和Servlet就是全部嗎?

      這個(gè)時(shí)候,我們不僅僅要能夠完成應(yīng)用程序的編寫,更重要的要讓應(yīng)用程序便于維護(hù)和便于擴(kuò)充。這時(shí)候,沒(méi)有足夠的抽象能力是不夠的。要能夠理解和應(yīng)用分層架構(gòu),要知道MVC、IoC、AOP、ORM,要了解聲明式事務(wù)處理,還要學(xué)會(huì)最流行了AJAX。所有的這一切,不僅能夠讓我們的應(yīng)用便于維護(hù),合理使用各開源組件還能加快開發(fā)的速度,但是最重要的,它們能使我們的應(yīng)用充滿藝術(shù)的美感。

      在SpringSide社區(qū),現(xiàn)在最流行的是Acegi,這也是對(duì)安全與權(quán)限功能的一種抽象。本來(lái)我也想寫一篇Acegi方面的文章,但是cac寫的文檔是在是太完美、太經(jīng)典了,我無(wú)法超越。我們應(yīng)該讓我們的應(yīng)用盡量向Acegi靠攏,因?yàn)?,它代表的就是安全與權(quán)限領(lǐng)域的最佳實(shí)踐。

      第三層境界:從程序員到架構(gòu)師

      架構(gòu)師可以干什么?如何讓應(yīng)用在性能,伸縮性,擴(kuò)展性、可靠性,容災(zāi),可恢復(fù)性,可管理性等方面做到最好,就是架構(gòu)師的職責(zé),同時(shí),架構(gòu)師要能夠把握軟件開發(fā)的整個(gè)周期。由于我還只是一個(gè)程序員,也沒(méi)有精力去學(xué)習(xí)架構(gòu)師方面的只是,因此上面的論述可能不準(zhǔn)確。但是,作為一個(gè)程序員,上升到一個(gè)境界之后,確實(shí)應(yīng)該考慮編碼之外的東西了。

      舉例說(shuō)明,cnblogs的博客程序算式比較完善的了,我個(gè)人對(duì)站長(zhǎng)dudu也是充滿了仰慕。cnblogs的1.0Beta2版本我也下載得有,本打算使用它建一個(gè)自己的博客網(wǎng)站,但是卻不行,因?yàn)樗谛阅埽炜s性,擴(kuò)展性方面都達(dá)不到我的要求。

      不信?看看現(xiàn)在www.cnblogs.com吧,注冊(cè)用戶已經(jīng)2萬(wàn)多了,速度也是越來(lái)越慢,經(jīng)過(guò)我一nslookup,發(fā)現(xiàn)它還只是一臺(tái)主機(jī)在運(yùn)行,而www.tianya.cn則是一個(gè)服務(wù)器集群。如下圖:
    52.JPG

      造成這個(gè)問(wèn)題的原因,主要就是架構(gòu)的問(wèn)題。cnblogs是基于.net的,.net運(yùn)行于IIS之上,而IIS又是那么的簡(jiǎn)單,更本不具備配置Cluster的功能。而cnblogs的程序在設(shè)計(jì)的時(shí)候也沒(méi)有往集群方面考慮,甚至是想多配置幾個(gè)數(shù)據(jù)庫(kù)都是困難的。

      解決網(wǎng)站性能的辦法有幾種,一是向上擴(kuò)展,也就是不斷增加服務(wù)器的CPU和內(nèi)存,但是這種擴(kuò)展價(jià)格非常昂貴;二是向外擴(kuò)展,也就是多增加幾臺(tái)廉價(jià)的Web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器,但是由于cnblogs在設(shè)計(jì)的時(shí)候沒(méi)有考慮到集群功能,就必須得重構(gòu)所有的代碼,這個(gè)工作量實(shí)在是太大了;三是垂直分割,也就是目前博客園所采用的方法,就是讓一臺(tái)主機(jī)負(fù)責(zé).net博客,一臺(tái)主機(jī)負(fù)責(zé)java博客等等,把不同的應(yīng)用分開。這樣帶來(lái)的負(fù)面影響是我們就沒(méi)有辦法在同一個(gè)博客上面同時(shí)寫.net、java、c++方面的隨筆了,這確實(shí)讓我感覺(jué)不爽,此外,在.net領(lǐng)域這樣訪問(wèn)量大的領(lǐng)域,一樣會(huì)使服務(wù)器不堪重負(fù)。

      我不能讓我的程序重蹈覆轍,因此,在架構(gòu)階段就應(yīng)該考慮到Cluster,考慮到負(fù)載均衡,考慮到可擴(kuò)充性,并同時(shí)使用水平分割策略。水平分割策略和垂直分割策略不同,是讓每一個(gè)Web服務(wù)器都應(yīng)該能夠使用程序的所有功能,而讓不同的用戶使用不同的服務(wù)器,比如id為0-10000的用戶和www1.cnblogs.com交互,10001-20000的用戶和www2.cnblogs.com交互,等等,如下圖所示:
    53.JPG

      這個(gè)時(shí)候,服務(wù)器www.cnblogs.com作為負(fù)載均衡服務(wù)器,它根據(jù)登錄用戶的ID將該用戶請(qǐng)求重定向到www1.cnblogs.com或者www2.cnblogs.com,對(duì)于匿名用戶,它把用戶請(qǐng)求隨機(jī)重定向到www1.cnblogs.com或者www2.cnblogs.com。

      同時(shí),為了能夠讓負(fù)載均衡服務(wù)器能夠根據(jù)不同的用戶來(lái)重定向到不同的Web服務(wù)器,又要讓每個(gè)Web服務(wù)器上的應(yīng)用都能夠得到所有各個(gè)數(shù)據(jù)庫(kù)服務(wù)器數(shù)據(jù)的總的索引,需要有一個(gè)索引數(shù)據(jù)庫(kù)服務(wù)器,如下圖:
    54.JPG

      此外,我們還應(yīng)該讓W(xué)eb服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器可以動(dòng)態(tài)增加,也就是當(dāng)某一個(gè)服務(wù)器負(fù)載到達(dá)極限時(shí),我們可以添加一臺(tái)服務(wù)器,只需要修改配置文件即可,無(wú)需更改代碼,如下圖:
    55.JPG

      同時(shí)配合使用動(dòng)態(tài)頁(yè)面靜態(tài)化技術(shù),靜態(tài)化后的html頁(yè)面和圖片文件都保存在Web服務(wù)器上,此時(shí)Web服務(wù)器有同時(shí)擔(dān)當(dāng)了緩存服務(wù)器的功能。當(dāng)達(dá)到IO瓶頸的限制后,又可以通過(guò)服務(wù)器加大內(nèi)存或?yàn)榉?wù)器配置SAN(存儲(chǔ)區(qū)域網(wǎng)絡(luò))來(lái)解決問(wèn)題。


      好了,SpringSide系列的文章就寫這么多吧。期待SpringSide 2.0正式版的發(fā)布。我會(huì)把它用到實(shí)際的項(xiàng)目開發(fā)中。


    評(píng)論

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-03-29 01:19 by yeshucheng
    文章寫得確實(shí)不錯(cuò):)

    哪天我也有你的心態(tài)境遇就好,繼續(xù)努力!

    京山游俠,希望以后你多寫點(diǎn)在實(shí)際項(xiàng)目中遇到類似這些性能問(wèn)題的解決方法:)

    不過(guò)我覺(jué)得你的這篇文章和SS好象很離題吧?難道是我語(yǔ)文沒(méi)學(xué)好

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-03-29 03:17 by 山風(fēng)小子
    您的這篇文章要比其他技術(shù)性文章要優(yōu)秀很多,也讓我學(xué)到了不少東西。
    對(duì)各類框架的整合,應(yīng)用,我已經(jīng)膩了,感覺(jué)自己像一個(gè)‘裝配工’。
    因此現(xiàn)在要么學(xué)習(xí)封裝的最好的框架--Grails,設(shè)計(jì)模式等High level的東西,要么就鉆研數(shù)據(jù)結(jié)構(gòu),算法,編譯原理等最基礎(chǔ)的東西。
    您覺(jué)得我走這兩個(gè)極端如何,希望得到您的忠告,謝謝 :)

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-03-29 07:33 by ncindy
    IIS不能集群,Apache可以?而且Web服務(wù)器沒(méi)有集群的必要吧,
    而且天涯那更像是用DNS做LB的方式,不是集群。LB的話IIS當(dāng)然可以了。
    可伸縮性在應(yīng)用層上用SNA才是最關(guān)鍵的,用這種架構(gòu)別說(shuō)IIS,就是用Ruby腳本寫的web server都可以實(shí)現(xiàn)高可伸縮性。

    dudu只有一臺(tái)服務(wù)器是估計(jì)因?yàn)楝F(xiàn)在資金還不夠充裕,想想天涯做了多少 年了啊。

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-03-29 09:10 by wangzx
    作者關(guān)于集群的描述我比較感興趣,不過(guò)我覺(jué)得從應(yīng)用的角度上不妨越簡(jiǎn)單越好。比如說(shuō)作者可以考慮使用Apache作為反向代理的方式,將負(fù)載均衡到多臺(tái)WEB服務(wù)器上,再結(jié)合動(dòng)態(tài)、靜態(tài)的Cache技術(shù),我覺(jué)得這個(gè)問(wèn)題會(huì)變得簡(jiǎn)單很多。利用Apache等提供的緩存技術(shù),我感覺(jué)會(huì)比你自己來(lái)實(shí)現(xiàn)“動(dòng)態(tài)轉(zhuǎn)靜態(tài)”更有意義。

    過(guò)多的在應(yīng)用層次考慮一些低層次的功能,最大的缺點(diǎn)是把應(yīng)用本身搞得很復(fù)雜,難以維護(hù),而如果放在其下的層次來(lái)考慮,我覺(jué)得可以很好的實(shí)現(xiàn)這二者的平衡:既簡(jiǎn)單又高效。當(dāng)然,從應(yīng)用的設(shè)計(jì)上來(lái)說(shuō),不是說(shuō)不需要考慮底層技術(shù),只是,現(xiàn)在我們只要知道我們的應(yīng)用設(shè)計(jì)是可以跟這些底層(如反向代理、Cache)等相匹配、相合作的,就可以了。

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-03-29 09:18 by L
    負(fù)載均衡直接用F5做就行了,根本沒(méi)必要這么復(fù)雜。

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-03-29 09:24 by Max
    如果作者有看過(guò)《Expert One on one J2EE Development Without EJB》應(yīng)該知道,J2EE的Cluster的性能不一定是最好的。
    Microsoft同樣有Load Balance的軟件。

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-03-29 09:59 by 蕭木
    這篇文章應(yīng)該有不少誤導(dǎo)讀者的地方.

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-03-29 10:04 by BeanSoft
    也許作者說(shuō)的是理想情況下, 不需要考慮吃飯, 出于研究/自學(xué)狀態(tài)下的心態(tài).

    絕大多數(shù)程序員吧, 都是為了吃飯而工作. 很多時(shí)候用戶需要的是一個(gè) IF-ELSE 的邏輯符合他的需要, 這個(gè)時(shí)候再多的框架也只是個(gè)殼, 而且這些框架也絲毫不能減少編寫 if-else 的代碼. 我不覺(jué)得框架整合的越多越牛, 而是應(yīng)該進(jìn)行分工, 不同的人專著于自己最擅長(zhǎng)的領(lǐng)域, 大家分工合作. 換句話說(shuō)只要能如期完成項(xiàng)目或者需求, 到底是什么技術(shù)用戶是不在意的.
    軟件業(yè)是服務(wù)業(yè), 而國(guó)內(nèi)的項(xiàng)目大多都是應(yīng)用程序, 業(yè)務(wù)流程, 這時(shí)候這些XX開源框架很多時(shí)候都幫不了太多的忙.
    至于架構(gòu)的方面, 只能說(shuō)做新項(xiàng)目之前多做些設(shè)計(jì), 擴(kuò)展等方面的工作, 能否集群也只是一部分, 采用哪些框架要根據(jù)實(shí)際情況討論, 還得考慮萬(wàn)一碰到框架 Bug 的時(shí)候怎么辦(記住開源項(xiàng)目可不是帶免費(fèi)技術(shù)支持的). 實(shí)際的情況往往是在維護(hù)老項(xiàng)目, 架構(gòu)已不可再改, 推倒重做風(fēng)險(xiǎn)更大, 老板也不會(huì)同意.
    個(gè)人覺(jué)得吧, 好好工作, 扎實(shí)掌握基礎(chǔ)知識(shí), 對(duì)于項(xiàng)目所需知識(shí)則是按需學(xué)習(xí), 早日根據(jù)自己的愛(ài)好, 實(shí)際情況進(jìn)行定位和規(guī)劃. 畢竟精力有限, 人人都成為精通XXX流行框架又是架構(gòu)師的概率實(shí)在是太低. 基礎(chǔ)掌握牢固的話, 再看框架很多時(shí)候都會(huì)感到似曾相識(shí).
    PS: 我也不覺(jué)得 SpringSide 就是敏捷開發(fā), 最佳實(shí)踐, 說(shuō)最佳之前請(qǐng)三思. PetStore 不也是經(jīng)典嘛, 現(xiàn)在還不是被批判的體無(wú)完膚.

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-03-29 11:08 by 江南白衣
    恭喜恭喜,告一段落,可以向更高的目標(biāo)進(jìn)發(fā)。

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-03-29 11:31 by adsljkfjlksda
    @蕭木
    那你寫篇來(lái)看看,說(shuō)這句話之前,想想你自己能寫出什么東西,如果你有,請(qǐng)?jiān)谀氵@句話下面把 鏈接 貼出來(lái),讓大家也評(píng)評(píng),如果確實(shí)好,那么沒(méi)人會(huì)說(shuō)什么,如果沒(méi)有一絲對(duì)大家有幫助的話,那你這句話是不負(fù)責(zé)任的~~ ,

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-03-29 13:27 by yegucheng
    作者只寫了集群的一部分,我覺(jué)得架構(gòu)設(shè)計(jì)應(yīng)該包含更廣泛的內(nèi)容,我覺(jué)得架構(gòu)師應(yīng)該從更高的高度去理解項(xiàng)目需求,不是為技術(shù)而技術(shù),當(dāng)然,這一切都必須以扎實(shí)的基本功為基礎(chǔ)

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-03-29 17:26 by 小陸
    clust可以在操作系統(tǒng)的層次上實(shí)現(xiàn),iis完全可以集群化。
    你所說(shuō)的集群是load balance,可以做在網(wǎng)關(guān)或者dns上

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界[未登錄](méi)  回復(fù)  更多評(píng)論   

    2007-03-29 18:48 by cac
    其實(shí)每個(gè)程序員不一定都有架構(gòu)師的職位,但都需要有架構(gòu)師的思想,可以說(shuō)沒(méi)有架構(gòu)師思想的程序員不是好的程序員。
    從程序員到架構(gòu)師只是一個(gè)從量變到質(zhì)便的過(guò)程,沒(méi)有在編程階段磨練過(guò),嘗試過(guò)各種語(yǔ)言,各種工具,各種方法的架構(gòu)師也不會(huì)是一個(gè)好的架構(gòu)師
    LZ 樸實(shí)的學(xué)習(xí)精神讓人敬佩

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-03-29 20:43 by 海邊沫沫
    @yeshucheng
    就是因?yàn)樵絹?lái)越離題,所以決定結(jié)束這個(gè)系列

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-03-29 20:46 by 海邊沫沫
    @山風(fēng)小子
    我也喜歡數(shù)據(jù)結(jié)構(gòu)、算法、編譯原理
    我也討厭當(dāng)裝配工

    看來(lái)我們兩個(gè)有很多共同之處

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-03-29 20:52 by 海邊沫沫
    剛到msdn去看了下關(guān)于體系結(jié)構(gòu)方面的東西,看了下MSA EDC構(gòu)建指南。感覺(jué)我的確是井底之蛙。

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-03-30 09:01 by 山風(fēng)小子
    @海邊沫沫 @江南白衣
    以后請(qǐng)多多指教 :)

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-03-31 10:57 by 海邊沫沫
    @wangzx
    我覺(jué)得應(yīng)用層還是應(yīng)該考慮一些底層的東西。myspace.com現(xiàn)在有1.2億注冊(cè)用戶,每個(gè)月訪問(wèn)量達(dá)到400億,三年時(shí)間中已經(jīng)對(duì)網(wǎng)站進(jìn)行了5次重寫,最后就是在應(yīng)用層采用的水平分割策略。

    Apache的緩存我也應(yīng)該去學(xué)習(xí)學(xué)習(xí),謝謝你的指點(diǎn)。

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-03-31 17:46 by 海邊沫沫
    @Max

    《Expert One on one J2EE Development Without EJB》中并沒(méi)有說(shuō)J2EE的Cluster性能不好。

    在“性能和可伸縮性”這一節(jié),作者對(duì)怎樣設(shè)計(jì)具有高性能和高可伸縮性的程序進(jìn)行了探討,其大致意思基本如下:

    應(yīng)用于服務(wù)器集群的程序,其實(shí)現(xiàn)方式基本上可以分為兩種,一種是基于分布式對(duì)象的,一種是基于部署的。什么是基于分布式對(duì)象呢?就是傳統(tǒng)的EJB部署方式,不同的業(yè)務(wù)對(duì)象分布于集群中不同的服務(wù)器上,通過(guò)遠(yuǎn)程調(diào)用來(lái)分擔(dān)服務(wù)器負(fù)載;這種方式是被作者所不推薦的,理由是遠(yuǎn)程調(diào)用太浪費(fèi)時(shí)間,這也正是作者寫Without Ejb的本意。什么是基于部署的呢?就是在集群中的每一臺(tái)服務(wù)器上都部署有該程序的完整版本,所有的業(yè)務(wù)對(duì)象都在本機(jī)上可以訪問(wèn)。

    此外,作者還探討了狀態(tài)管理,性能最高的就是作者所說(shuō)的農(nóng)場(chǎng)模式,也就是說(shuō)每一臺(tái)服務(wù)器都可以當(dāng)作別的服務(wù)器不存在,他們之間不需要進(jìn)行Session狀態(tài)復(fù)制等等。如果要進(jìn)行Session狀態(tài)的復(fù)制,必然會(huì)對(duì)集群的性能造成影響,n臺(tái)服務(wù)器的性能不可能達(dá)到1臺(tái)服務(wù)器的n倍。

    對(duì)于《Expert One on one J2EE Development Without EJB》這樣的好書,確實(shí)應(yīng)該反復(fù)閱讀。

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-07-25 15:08 by 我的Java工作經(jīng)歷
    無(wú)語(yǔ)了,牛。。。。

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2007-08-09 13:22 by mmwy
    nslookup出來(lái)只有一個(gè)ip并不一定能說(shuō)明它就沒(méi)做負(fù)載均衡處理。難說(shuō)你得到的這個(gè)ip是前置的負(fù)載均衡交換機(jī)的ip,realserver都躲在其內(nèi)部來(lái)著。

    nslookup出來(lái)多個(gè)ip,也許他只是用了最簡(jiǎn)單的dns輪循的負(fù)載均衡處理,也有可能是做了gslb。

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2008-08-13 08:23 by 笑笑笑笑笑笑笑
    文章舊了,希望可以更新到springside3.0

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(八):不是結(jié)局的結(jié)局,談?wù)劤绦騿T的境界  回復(fù)  更多評(píng)論   

    2009-03-25 23:58 by hansen
    寫的不錯(cuò),有同感
    記得老師曾說(shuō)過(guò) “程序員像作家,寫代碼就像在寫作”,
    好的架構(gòu)師就如同金庸等名家,寫出的代碼像是藝術(shù)品 如spring hibernate的作者。 而普通的程序員(這里指為了生計(jì),在極短時(shí)間內(nèi)copy,修改代碼,來(lái)完成工作任務(wù)) 可能只是為了完成每天的工作而已,只是為那點(diǎn)錢。就像某些記者。 雖然我也很想寫出優(yōu)雅的代碼,但領(lǐng)導(dǎo)不會(huì)理解你的做法,只是覺(jué)得你效率低。
    未來(lái) 我一定會(huì)“寫”屬于我自己風(fēng)格的真正好作品。
    主站蜘蛛池模板: 成人毛片手机版免费看| a级在线观看免费| 亚洲一卡2卡三卡4卡无卡下载| 久久精品国产亚洲AV高清热| 亚洲国产精品自在线一区二区| 国产l精品国产亚洲区在线观看| 国产AV无码专区亚洲AV漫画| 亚洲天堂中文字幕在线| 中文亚洲AV片在线观看不卡| 亚洲熟妇av一区二区三区| 亚洲国产日韩在线视频| 亚洲国产成人久久综合碰碰动漫3d| 精品国产_亚洲人成在线高清| 国产亚洲成av片在线观看| 亚洲成在人线av| 亚洲午夜在线电影| 亚洲综合色一区二区三区小说| 亚洲人成免费网站| 亚洲久热无码av中文字幕| 最新亚洲人成无码网站| 一级**爱片免费视频| 免费看少妇高潮成人片| 精品一区二区三区免费毛片爱| 美女被cao免费看在线看网站| 毛片免费在线观看网站| 国产一区二区视频免费| 亚洲中文字幕第一页在线 | 国产97视频人人做人人爱免费| eeuss影院免费92242部| 黄网站色视频免费在线观看的a站最新| 精品无码国产污污污免费网站 | 国产午夜亚洲精品不卡| 国产精品hd免费观看| 99爱视频99爱在线观看免费| 成人看的午夜免费毛片| 亚洲无码精品浪潮| 久久av无码专区亚洲av桃花岛| 亚洲精品久久久久无码AV片软件| 特a级免费高清黄色片| 一级毛片免费观看不卡的| 大学生一级特黄的免费大片视频 |