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

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

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

    Java應(yīng)用從集中式步入分布式

    記得Martin大叔在《企業(yè)應(yīng)用架構(gòu)模式》中特別強(qiáng)調(diào):“能夠不分布式的應(yīng)用就不要分布式”,這句話沒什么問題,尤其對(duì)于做過分布式應(yīng)用的人而言,就更會(huì)有深刻的體會(huì)了,但這個(gè)世界偏偏就沒有那么簡(jiǎn)單,大多數(shù)人都會(huì)碰到分布式應(yīng)用的場(chǎng)景,尤其是對(duì)于大型應(yīng)用而言,從集中式步入分布式是不可避免的,只是也許是小型分布式的,也許是大型分布式的;也許是有高性能要求的,也許是沒有的,在這篇blog中我們來看看java應(yīng)用從集中式步入分布式后到底會(huì)帶來些什么挑戰(zhàn)。

    blog按照應(yīng)用從集中式演變?yōu)榇笮颓腋咝阅艿膽?yīng)用的過程來敘述,這也是因?yàn)檫@幾類應(yīng)用對(duì)于設(shè)計(jì)、開發(fā)人員的要求也是從低到高的。

     

    Level 1:小型分布式應(yīng)用

    對(duì)于做習(xí)慣了集中式應(yīng)用的同學(xué)而言,當(dāng)碰到小型分布式應(yīng)用場(chǎng)景時(shí),最明顯的問題就是如何和遠(yuǎn)程的系統(tǒng)通訊,如何發(fā)消息給遠(yuǎn)程的系統(tǒng),告訴它做什么事情,并且得到事情處理的結(jié)果,對(duì)于java開發(fā)人員而言,更習(xí)慣的考慮方式也許是如何去調(diào)用遠(yuǎn)程系統(tǒng)提供的接口,在集中式的應(yīng)用中可以采用A a=new AImpl();這樣的方式調(diào)用,但遠(yuǎn)程就沒辦法這么調(diào)用了。

    在小型分布式應(yīng)用中,最需要解決的就是上面所說的遠(yuǎn)程系統(tǒng)通訊以及遠(yuǎn)程系統(tǒng)調(diào)用的問題了,為此就得學(xué)習(xí)相關(guān)的知識(shí)體系。

    對(duì)于遠(yuǎn)程系統(tǒng)通訊而言,至少應(yīng)該知道下TCP/IPUDP/IP是個(gè)大概什么樣的概念,BIO/NIO是什么概念,另外就是需要知道下基于java如何去實(shí)現(xiàn)tcp/ip+BIO(NIO)udp/ip+BIO(NIO)的通訊,相應(yīng)的會(huì)需要了解下Java序列化、服務(wù)器端采用線程池方式處理等知識(shí),在掌握了這些知識(shí)后,基本上做一個(gè)小型的java遠(yuǎn)程通訊的應(yīng)用不會(huì)有什么太大的問題。

    對(duì)于通過遠(yuǎn)程系統(tǒng)調(diào)用就可實(shí)現(xiàn)的小型分布式應(yīng)用而言,也許更為簡(jiǎn)單,可以只掌握怎么用spring-remotingaxishessian這類的框架就可以了,直接就可實(shí)現(xiàn),當(dāng)然,如果能了解下rmiwebservice是什么機(jī)制就更好了,另外,畢竟遠(yuǎn)程調(diào)用很難做到完全和本地調(diào)用一樣,盡管所有的遠(yuǎn)程調(diào)用框架都想做到完全透明,但遠(yuǎn)程調(diào)用時(shí)僅僅異常就比本地調(diào)用會(huì)多出好幾種來,例如網(wǎng)絡(luò)異常、超時(shí)異常等,因此在調(diào)用遠(yuǎn)程系統(tǒng)時(shí),需要明確的了解這些異常的區(qū)分,當(dāng)然,或者可以認(rèn)為都是同樣的遠(yuǎn)程業(yè)務(wù)異常,但在追查錯(cuò)誤時(shí),則需要明確區(qū)分。

    從上面這些知識(shí)點(diǎn)可以看出,應(yīng)用即使是從集中式應(yīng)用步入小型分布式應(yīng)用,無論是對(duì)于開發(fā)、部署還是測(cè)試而言,都復(fù)雜了很多。

     

    Level 2:高性能分布式應(yīng)用

    對(duì)于高性能分布式應(yīng)用而言,要求就高很多了,因?yàn)橐龅礁咝阅埽瑑H了解怎么用是不夠的,通訊和調(diào)用方面的技術(shù)都需要了解到底層的具體機(jī)制和實(shí)現(xiàn)。

    對(duì)于遠(yuǎn)程通訊方式的分布式應(yīng)用而言,需要了解BIO/NIO具體有什么不同,具體機(jī)制是怎么樣的,以及使用或參考目前主流的通訊框架,像minagrizzly等,看看它們?cè)谧?/span>NIO實(shí)現(xiàn)時(shí)有什么高超的技巧,除了了解這些外,還需要掌握線程池應(yīng)如何配置;長(zhǎng)連、短連什么概念,如何實(shí)現(xiàn);連接怎么管理;序列化如何優(yōu)化等等。

    對(duì)于遠(yuǎn)程調(diào)用的分布式應(yīng)用而言,則在上面的基礎(chǔ)上,還需要了解rmiwebservice等的實(shí)現(xiàn)機(jī)制是怎么樣的,另外就是spring-remotinghessianaxis的實(shí)現(xiàn)機(jī)制是怎么樣的,有什么可改進(jìn)的地方,在明確了可改進(jìn)的地方后需要自己選擇相應(yīng)的方案去實(shí)現(xiàn)。

    從上面這些知識(shí)點(diǎn)可以看出,要寫出高性能的分布式應(yīng)用真的不是蓋的,確實(shí)挺困難的。

     

    Level 3:大型高性能分布式應(yīng)用

    對(duì)于大型高性能分布式應(yīng)用而言,難度就較之之前兩個(gè)level更大很多,它面臨的問題非常的多:

    1、穩(wěn)定性的問題

         對(duì)于大型分布式應(yīng)用而言,保持穩(wěn)定是其重點(diǎn),要做到穩(wěn)定,就必須對(duì)整個(gè)應(yīng)用的通訊過程的實(shí)現(xiàn)技術(shù)有全面的了解,以能夠做到在使用時(shí)盡量的正確,另外就是當(dāng)出現(xiàn)問題時(shí)能夠盡快的查明原因。

    2、統(tǒng)一、標(biāo)準(zhǔn)通訊的問題

         大型分布式應(yīng)用必然會(huì)涉及到很多種不同的應(yīng)用,應(yīng)該能夠做到對(duì)于任何的應(yīng)用都采用同樣的方式進(jìn)行通訊或調(diào)用,這樣才能確保使用的簡(jiǎn)單。

    3、分布式事務(wù)的問題

         當(dāng)應(yīng)用變成大型分布式應(yīng)用后,分布式事務(wù)的問題會(huì)不可避免的出現(xiàn),而且這個(gè)時(shí)候還要求做到高性能,因此通常是不能用傳統(tǒng)的數(shù)據(jù)庫(kù)事務(wù)來實(shí)現(xiàn)的,目前對(duì)于大型應(yīng)用的分布式事務(wù)而言,流行的有BASECAP策略,和傳統(tǒng)的ACID策略不同。

    4、如何管理這些應(yīng)用的問題

         大型分布式應(yīng)用,意味著應(yīng)用非常的多,在這樣的場(chǎng)景下,怎么樣管理好這么多的應(yīng)用呢,例如這些應(yīng)用之間的依賴關(guān)系是怎么樣的,應(yīng)用運(yùn)行期的狀況是怎么樣的等等。

    還有很多各種各樣的問題,因此,我們更要說,要做個(gè)能支撐大型高性能的分布式應(yīng)用真的非常非常的不容易,對(duì)于實(shí)現(xiàn)大型分布式應(yīng)用而言,目前SOA是個(gè)可參考的思想,但其具體如何實(shí)現(xiàn)就需要各位架構(gòu)師根據(jù)情況來做出具體的選擇了。

     

    從以上簡(jiǎn)單的描述來看,可以看出,分布式應(yīng)用比集中式應(yīng)用真的難很多,至少它是在原有的集中式應(yīng)用的基礎(chǔ)上增加了更多的挑戰(zhàn)和對(duì)于知識(shí)體系的更高的要求,當(dāng)然,對(duì)于大型應(yīng)用而言,它帶來的好處也是非常明顯的,因此就讓我們痛并快樂著吧。

    posted on 2009-01-04 17:12 BlueDavy 閱讀(7955) 評(píng)論(11)  編輯  收藏 所屬分類: Java

    評(píng)論

    # re: Java應(yīng)用從集中式步入分布式 2009-01-05 00:50 Oasis Feng

    一直有個(gè)疑惑,如果將應(yīng)用的實(shí)例全分布到所有的節(jié)點(diǎn)上,從而使單個(gè)業(yè)務(wù)會(huì)話可以從頭到尾在一個(gè)節(jié)點(diǎn)上完成(除了分發(fā)入口外)。這樣算不算是分布式應(yīng)用?
    呵呵,比較怪異的想法。=__=!  回復(fù)  更多評(píng)論   

    # re: Java應(yīng)用從集中式步入分布式[未登錄] 2009-01-05 09:05 pony

    從集群處理走向分布處理的系統(tǒng)架構(gòu),是大型系統(tǒng)發(fā)展的趨勢(shì),個(gè)人看法。  回復(fù)  更多評(píng)論   

    # re: Java應(yīng)用從集中式步入分布式[未登錄] 2009-01-05 09:09 Tim

    BlueDavy也開始研究分布式了?  回復(fù)  更多評(píng)論   

    # re: Java應(yīng)用從集中式步入分布式 2009-01-05 11:35 Robin's Java World

    @Oasis Feng
    應(yīng)該也算。  回復(fù)  更多評(píng)論   

    # re: Java應(yīng)用從集中式步入分布式 2009-01-05 12:14 楊一

    還有分布式系統(tǒng)時(shí)鐘同步,令牌處理或決策機(jī)制,安全性,故障可恢復(fù)性
    最后人們還是不得不選擇Weblogic或者Websphere,先不論他們實(shí)現(xiàn)沒實(shí)現(xiàn)什么標(biāo)準(zhǔn),但是解決這些分布式的實(shí)際問題,就夠讓人頭疼的,也許你有那個(gè)實(shí)力,但你有那個(gè)精力嗎。所以Spring和EJB還是有不同的應(yīng)用場(chǎng)景的,不僅僅是編程的習(xí)慣或者測(cè)試什么的,而是容器的能力  回復(fù)  更多評(píng)論   

    # re: Java應(yīng)用從集中式步入分布式 2009-01-05 22:13 Jack.Wang

    @楊一
    恩,說的很好,個(gè)人覺得這篇文章可以寫的更好些,可能也是沒時(shí)間啊。BlueDavy 的文章有必看!  回復(fù)  更多評(píng)論   

    # re: Java應(yīng)用從集中式步入分布式 2009-01-06 12:50 劉旭林

    先學(xué)個(gè)概念。平時(shí)準(zhǔn)備些知識(shí)。遇到了總能有個(gè)思路。  回復(fù)  更多評(píng)論   

    # re: Java應(yīng)用從集中式步入分布式 2009-01-08 19:25 Alex wang

    不錯(cuò),雖然暫時(shí)沒怎么碰到,先收藏了。  回復(fù)  更多評(píng)論   

    # re: Java應(yīng)用從集中式步入分布式 2009-01-13 01:13 niveko

    一個(gè)問題:
    Rod Johnson不是說過不要分布你的對(duì)象,而是分布你的應(yīng)用層。如果像你說的這樣分布的話那跟使用EJB有什么區(qū)別呢?  回復(fù)  更多評(píng)論   

    # re: Java應(yīng)用從集中式步入分布式 2009-02-11 13:07 duduli

    對(duì)于分布式系統(tǒng)自己也有想過,只是到現(xiàn)在自己都沒有進(jìn)行過實(shí)踐。  回復(fù)  更多評(píng)論   

    # re: Java應(yīng)用從集中式步入分布式 2009-02-16 00:32 馮瑞寶

    本人想做煤炭行業(yè)網(wǎng),能否出出主意,幫忙找個(gè)團(tuán)隊(duì)建設(shè)這個(gè)網(wǎng)站?謝啦!  回復(fù)  更多評(píng)論   

    公告

     









    feedsky
    抓蝦
    google reader
    鮮果

    導(dǎo)航

    <2009年1月>
    28293031123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    統(tǒng)計(jì)

    隨筆分類

    隨筆檔案

    文章檔案

    Blogger's

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 国产高清免费视频| 亚洲中文字幕无码中文| 一区二区视频在线免费观看| 免费观看亚洲人成网站| 亚洲av永久无码精品网址| 午夜精品在线免费观看| 丰满亚洲大尺度无码无码专线| 毛片免费观看的视频| 亚洲国产精品成人AV在线 | 91福利视频免费观看| 亚洲激情在线观看| 91久久青青草原线免费| 亚洲精品mv在线观看| 欧美在线看片A免费观看| 亚洲αⅴ无码乱码在线观看性色| 国产高清视频在线免费观看| 国产精品亚洲专一区二区三区| 亚洲一区精品伊人久久伊人| 国产99精品一区二区三区免费| 国产亚洲精品自在久久| 18禁美女裸体免费网站 | 亚洲A∨无码无在线观看| 日韩人妻一区二区三区免费| 亚洲国产美女视频| 国产无遮挡吃胸膜奶免费看| 一级毛片视频免费| 午夜亚洲www湿好大| 成人毛片免费播放| 一级毛片在线免费播放| 亚洲日本在线看片| 日韩午夜免费视频| 国色精品va在线观看免费视频 | 波多野结衣视频在线免费观看| WWW国产成人免费观看视频| 老司机亚洲精品影院无码| 女人18特级一级毛片免费视频| 性生大片视频免费观看一级| 久久亚洲AV成人无码电影| 国产免费久久精品| 日日麻批免费40分钟无码| 国产亚洲欧美日韩亚洲中文色|