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

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

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

    Java應用從集中式步入分布式

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

    blog按照應用從集中式演變為大型且高性能的應用的過程來敘述,這也是因為這幾類應用對于設計、開發人員的要求也是從低到高的。

     

    Level 1:小型分布式應用

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

    在小型分布式應用中,最需要解決的就是上面所說的遠程系統通訊以及遠程系統調用的問題了,為此就得學習相關的知識體系。

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

    對于通過遠程系統調用就可實現的小型分布式應用而言,也許更為簡單,可以只掌握怎么用spring-remotingaxishessian這類的框架就可以了,直接就可實現,當然,如果能了解下rmiwebservice是什么機制就更好了,另外,畢竟遠程調用很難做到完全和本地調用一樣,盡管所有的遠程調用框架都想做到完全透明,但遠程調用時僅僅異常就比本地調用會多出好幾種來,例如網絡異常、超時異常等,因此在調用遠程系統時,需要明確的了解這些異常的區分,當然,或者可以認為都是同樣的遠程業務異常,但在追查錯誤時,則需要明確區分。

    從上面這些知識點可以看出,應用即使是從集中式應用步入小型分布式應用,無論是對于開發、部署還是測試而言,都復雜了很多。

     

    Level 2:高性能分布式應用

    對于高性能分布式應用而言,要求就高很多了,因為要做到高性能,僅了解怎么用是不夠的,通訊和調用方面的技術都需要了解到底層的具體機制和實現。

    對于遠程通訊方式的分布式應用而言,需要了解BIO/NIO具體有什么不同,具體機制是怎么樣的,以及使用或參考目前主流的通訊框架,像minagrizzly等,看看它們在做NIO實現時有什么高超的技巧,除了了解這些外,還需要掌握線程池應如何配置;長連、短連什么概念,如何實現;連接怎么管理;序列化如何優化等等。

    對于遠程調用的分布式應用而言,則在上面的基礎上,還需要了解rmiwebservice等的實現機制是怎么樣的,另外就是spring-remotinghessianaxis的實現機制是怎么樣的,有什么可改進的地方,在明確了可改進的地方后需要自己選擇相應的方案去實現。

    從上面這些知識點可以看出,要寫出高性能的分布式應用真的不是蓋的,確實挺困難的。

     

    Level 3:大型高性能分布式應用

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

    1、穩定性的問題

         對于大型分布式應用而言,保持穩定是其重點,要做到穩定,就必須對整個應用的通訊過程的實現技術有全面的了解,以能夠做到在使用時盡量的正確,另外就是當出現問題時能夠盡快的查明原因。

    2、統一、標準通訊的問題

         大型分布式應用必然會涉及到很多種不同的應用,應該能夠做到對于任何的應用都采用同樣的方式進行通訊或調用,這樣才能確保使用的簡單。

    3、分布式事務的問題

         當應用變成大型分布式應用后,分布式事務的問題會不可避免的出現,而且這個時候還要求做到高性能,因此通常是不能用傳統的數據庫事務來實現的,目前對于大型應用的分布式事務而言,流行的有BASECAP策略,和傳統的ACID策略不同。

    4、如何管理這些應用的問題

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

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

     

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

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

    評論

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

    一直有個疑惑,如果將應用的實例全分布到所有的節點上,從而使單個業務會話可以從頭到尾在一個節點上完成(除了分發入口外)。這樣算不算是分布式應用?
    呵呵,比較怪異的想法。=__=!  回復  更多評論   

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

    從集群處理走向分布處理的系統架構,是大型系統發展的趨勢,個人看法。  回復  更多評論   

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

    BlueDavy也開始研究分布式了?  回復  更多評論   

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

    @Oasis Feng
    應該也算。  回復  更多評論   

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

    還有分布式系統時鐘同步,令牌處理或決策機制,安全性,故障可恢復性
    最后人們還是不得不選擇Weblogic或者Websphere,先不論他們實現沒實現什么標準,但是解決這些分布式的實際問題,就夠讓人頭疼的,也許你有那個實力,但你有那個精力嗎。所以Spring和EJB還是有不同的應用場景的,不僅僅是編程的習慣或者測試什么的,而是容器的能力  回復  更多評論   

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

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

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

    先學個概念。平時準備些知識。遇到了總能有個思路。  回復  更多評論   

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

    不錯,雖然暫時沒怎么碰到,先收藏了。  回復  更多評論   

    # re: Java應用從集中式步入分布式 2009-01-13 01:13 niveko

    一個問題:
    Rod Johnson不是說過不要分布你的對象,而是分布你的應用層。如果像你說的這樣分布的話那跟使用EJB有什么區別呢?  回復  更多評論   

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

    對于分布式系統自己也有想過,只是到現在自己都沒有進行過實踐。  回復  更多評論   

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

    本人想做煤炭行業網,能否出出主意,幫忙找個團隊建設這個網站?謝啦!  回復  更多評論   

    公告

     









    feedsky
    抓蝦
    google reader
    鮮果

    導航

    <2009年2月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    1234567

    統計

    隨筆分類

    隨筆檔案

    文章檔案

    Blogger's

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲AV成人精品日韩一区| 亚洲大香伊人蕉在人依线| 色天使亚洲综合在线观看| 日韩免费人妻AV无码专区蜜桃 | 亚洲成Av人片乱码色午夜| 国产免费一区二区三区免费视频| 又粗又硬免费毛片| 欧洲美女大片免费播放器视频| 免费大黄网站在线观看| 人妖系列免费网站观看| 亚洲日韩aⅴ在线视频| 精品在线免费观看| 亚洲最大中文字幕| 成人毛片免费视频| 无忧传媒视频免费观看入口| 国产亚洲精品a在线观看 | 无码区日韩特区永久免费系列| 精品久久久久久亚洲精品| 日韩在线免费电影| 国产免费久久精品99久久| 亚洲av色福利天堂| 女人被男人桶得好爽免费视频 | 成人A片产无码免费视频在线观看 成人电影在线免费观看 | 在线看片免费不卡人成视频| 亚洲人成网站在线在线观看| 免费中文字幕在线观看| 嫩草成人永久免费观看| 国产人成亚洲第一网站在线播放| 大胆亚洲人体视频| 少妇无码一区二区三区免费| 亚洲一区二区三区丝袜| 亚洲综合另类小说色区色噜噜| 99久久国产免费-99久久国产免费 99久久国产免费中文无字幕 | 国产AV无码专区亚洲Av| 成人免费午夜无码视频| 一级特黄色毛片免费看| 亚洲三级电影网站| 四虎影永久在线高清免费| 亚洲精品免费在线观看| 亚洲成a人片在线不卡一二三区| 亚洲av永久无码精品表情包|