提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容

          記得自己在沒有進入互聯網行業之前,對于互聯網行業并不怎么感冒,總覺得互聯網行業的技術含量不高,沒什么意思,值得進入互聯網行業了,才明白,原來互聯網行業的技術是這么的復雜,這么的困難,而構建一個擁有巨大用戶量的系統無疑也會給自己帶來更多的成就感,記得自己剛進入互聯網行業的時候,才發現構建一個高并發、高性能、承受高壓力、高度可伸縮以及高可用性的系統要掌握的知識體系是在太多了,而且這些知識體系根本就不是在學校或是google、網絡中能夠學習到的,于是當時就想,如果能有一本書全面的介紹構建這”五高“特性的系統需要掌握的知識體系,那將是多么的美好呀,畢竟很多的知識體系都是靠經驗積累出來的,甚至可是說,是痛苦的教訓等得出來的,但當然,要在一本書中完全講清楚所有的知識體系,自然是不靠譜的,但我想我會盡量在書中表達出自己的一些觀點、看法以及少少的經驗吧,希望能夠讓更多的同學即使沒有大型系統的實際經驗,也能掌握到一些大型系統所需的知識體系,那么我心甚慰了,由于本書需要寫的東西非常的多,預計在9月底完成寫作,估計要到明年春節后上市,:),以下先揭秘下本書的大概內容,也請大家多多提出意見,目錄的信息我在隨后的blog中再行貼出,同時在以后的blog中也會不定期的放出一些寫好的草稿以及做進度的預告。
            
             本書圍繞著構建大型分布式
          Java應用系統的知識體系來進行編寫的,包括會出現哪些方面的難點和挑戰,對于這些難點和挑戰有什么辦法來解決,需要掌握些什么知識體系(例如第一章中的分布式Java應用的通訊技術、遠程調用技術也都是大型分布式Java應用所必須掌握的知識體系)

          1、  眾多子系統構成

          當系統由眾多子系統構成時,想想100多個子系統構成的應用系統,如何管理好這些子系統就很重要了,例如子系統之間是如何調用的、每個子系統對外提供了哪些功能、子系統之間的依賴關系是怎么樣的、當發生調用時調用路徑是怎么樣的、這些子系統在運行期的狀況如何(例如有多少訪問量)等等。

          要管理好這些子系統,首先第一個需要解決的問題是標準化子系統之間交互的方式,這一方面要求標準化每個子系統對外提供功能的方式,另一方面要求標準化每個子系統調用其他子系統提供的功能的方式,只有在這些標準化了以后才有可能管理好這些子系統,SOA無疑是非常匹配的一種架構級的選擇,除了軟件角度外,如何運維、管理好這么眾多的子系統也是難點。

          對于眾多子系統構成的應用而言,如何管理并不是全部,還有其他很多相伴而來的問題也是需要解決的,例如跨子系統的調用時,如何保證整個調用過程的事務、雪崩效應等。

          標準化是管理好眾多子系統的根本,并且它要求的是架構級的全局支持,因此在本書中首先講解這個形容詞定語的解決方案以及所需的知識體系,也就是本章節的重點。

          2、  承受高壓力

          大型企業應用或互聯網應用,都有眾多的使用者,眾多的使用者也就意味著系統需要并發的被眾多的用戶訪問,而這通常很容易暴露出系統中很多并發場景中罕見的現象,因此在編寫此類應用時需要非常仔細的考慮系統對于高并發的支持,同時,由于每臺機器上的應用能夠支撐的用戶量必然是有限(例如某網站的服務器,單臺支撐500WPV已經是業界佳話了),如何支撐巨大的用戶訪問量就成為了關鍵,而這里面如何在盡量不改變現有程序的基礎上來支撐不斷增長的用戶訪問量就是更為重要的關鍵了。

          要承受高壓力首先要求系統具備高性能,只有系統是高性能的,才有可能支撐足夠的壓力,其次是系統需要具備高度可伸縮的能力(包括垂直伸縮和水平伸縮),要讓系統具備這兩點,對于系統的軟件結構以及硬件體系都有很高的要求,在本書的第七章和第八章中將來重點講解從軟件結構角度如何保障系統具備高度可伸縮的能力。

          除了上述的點之外,要讓系統能夠更好的承受高壓力,其實還需要由合理的評估,以事先對系統的結構進行改造或進行硬件上的擴充等,這屬于非常專業的容量規劃的領域,就不在這本書中進行講述了,如感興趣的話可以參閱相關的容量規劃的書籍。

          3、  具備高性能

          無論是大型企業應用還是互聯網應用,都要求在短時間內響應用戶的請求,如電話計費系統、淘寶網,怎么樣才能讓系統具備高性能呢,這在大型分布式系統中就更為的復雜了,因為在大型分布式系統中通常一個請求需要經過好幾個子系統才能完成。

          要編寫高性能的應用,這就要求應用設計人員能夠充分掌握實現需求的可選的技術方案,并對技術方案中的所有細節都非常的精通,例如jdk的實現、操作系統的實現以及底層的原理,除了軟件方面的深刻理解外,對于硬件也是要求有深刻的理解的,但本書只涵蓋軟件方面的內容,因此對于硬件相關的原理就不進行描述了,只有在充分掌握這些原理的情況下才能根據系統的需求以及性能要求選擇最為合適的技術,除了編寫高性能的程序外,另外需要具備衡量系統性能的指標以及方法,只有這樣才能知道系統的性能到底如何,瓶頸在什么地方,最后還需要具備系統調優的能力,而這通常需要從硬件角度、軟件環境角度(例如操作系統、jvm等)以及程序角度來進行調優,以使系統能夠到達所要求的性能,在本書的第三、四、五以及六章中將來重點講述編寫高性能的Java應用所需掌握的知識體系。。

          4、  具備高可用性

          大型企業應用和互聯網應用,都要求系統7 * 24小時不間斷的穩定運行,如何才能保證系統在各種各樣的訪問情況下都不宕機,這對于系統的實現人員來說是個巨大的挑戰。

             要讓系統在各種情況下不宕機,首先要求的是軟件本身具備很好的穩定性,要編寫穩定性高的程序要求對所采用的技術具備非常深刻的理解,這點和編寫高性能程序是一樣的,從這點也是互聯網公司都強調核心的技術都需要自己編寫的原因之一。

             除了軟件本身需要具備很好的穩定性外,也還需要采用其他很多的防范來保障系統的可用性,例如常用的方法為集群(即多臺提供同樣功能的服務器,這樣即使其中的幾臺出問題也仍然可以服務)、容災,還有更為復雜的方法像異地容災、異地分流以及多數據中心的建設等等,這些方法并不是直接按照理論就可以實現的,對于軟件本身的結構也提出了很高的要求,在本書的第九章中將來詳細講述如何構建高可用性的java應用。


          posted on 2009-03-06 09:15 BlueDavy 閱讀(6352) 評論(20)  編輯  收藏 所屬分類: Java

          評論

          # re: 提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容[未登錄] 2009-03-06 09:26 EricFan

          嚴重期待!  回復  更多評論   

          # re: 提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容 2009-03-06 10:07 sxy

          對我的工作很有借鑒意義,真希望現在就能看到  回復  更多評論   

          # re: 提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容 2009-03-06 10:28 hyde

          超級嚴重期待!  回復  更多評論   

          # re: 提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容[未登錄] 2009-03-06 12:48 Titan

          期待盡快看到!  回復  更多評論   

          # re: 提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容 2009-03-06 13:32 lbom

          從樓主介紹來看,本書是一篇非常有價值且大而全的東東。但是,具體問題還是需要要具進行體分析的,你的書是不是能夠滿足架構師的需要,并對他們提供有效且可行的解決方案,哪就要讓事實來說話了!
          總之,值得期待,但不報太大希望!  回復  更多評論   

          # re: 提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容 2009-03-06 16:15 BlueDavy

          @lbom
          非常同意lbom的話,不過本書的目的不是為架構師提供成熟的解決方案,只是講解在構建這類系統上會涉及到的知識體系,只是想通過這本書能夠讓沒有大型系統環境的開發人員、技術人員們能夠對這些知識體系有所了解,我還不敢對架構師們提出指導,沒那么強...  回復  更多評論   

          # re: 提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容 2009-03-06 17:46 楊一

          期待,出版時一定要提醒大家一下  回復  更多評論   

          # wdmcln 2009-03-12 23:52 wdmcln

          這本書的標題很震奮人心啊!對于大型分布式的應用知識范圍確實很廣,一直沒有一本全方位的介紹,都是零星點點的介紹!對于具體應用場景還得具體分析,就拿簡單的來說: 生產機和開發機的環境,在本質上是相同的東西,但應用具體環境不同,生產機出現的問題經常會是稀奇古怪的問題,期待喲.............................  回復  更多評論   

          # re: 提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容 2009-03-13 17:52 qingxiaohua

          頂,期待中~~~  回復  更多評論   

          # re: 提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容 2009-03-17 16:35 動物園的豬

          大俠出手,一定不同凡響,Java的服務器編程很少有人討論,這下子終于可以有個參考的書目了,使勁頂你。  回復  更多評論   

          # re: 提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容[未登錄] 2009-05-09 22:07 steeven

          等你出來方案就過時了吧? just joking  回復  更多評論   

          # re: 提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容 2009-05-15 11:41 geoconst

          期待,大家都有類似的困惑,你是先行者了!  回復  更多評論   

          # re: 提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容 2009-07-30 13:15 于堡艦

          朋友這本書還在寫么,別停啊 一定要出來啊   回復  更多評論   

          # re: 提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容 2009-07-30 13:37 BlueDavy

          @于堡艦
          呵呵,當然在寫的,會如期上市的,多謝關注。
            回復  更多評論   

          # re: 提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容 2009-09-09 10:32 xiaoleigood

          BlueDavy 能透露一下 目前此書的進展么 很期待的說 ~~~~~~~  回復  更多評論   

          # re: 提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容 2009-09-09 13:13 BlueDavy

          總共九章的內容,目前完成了四章,正在進行第五章的編寫,:),由于這本書涵蓋的面很廣,所以寫作的進度上稍微有所延遲了,大概需要在11月底完成初稿,不過應該還是會在明年三月左右上市。  回復  更多評論   

          # re: 提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容 2009-10-07 03:48 lxa

          淘寶和阿里出來的好書越多越好 很實在,阿Q一句,IT世界是遲早中國的  回復  更多評論   

          # re: 提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容 2009-10-10 10:21 wzjin

          不要泛泛而談,需要真的可以指導工作才行。  回復  更多評論   

          # re: 提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容 2010-01-28 15:33 Jose

          什么時候出版啊?不會跳票了吧?  回復  更多評論   

          # re: 提前N久的揭秘:《構建高性能的大型分布式Java應用》書的大概內容 2010-01-28 23:20 BlueDavy

          @Jose
          呵呵,不會跳票,也許會稍有推遲,:)  回復  更多評論   

          公告

           









          feedsky
          抓蝦
          google reader
          鮮果

          導航

          <2009年5月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          統計

          隨筆分類

          隨筆檔案

          文章檔案

          Blogger's

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 白玉县| 崇仁县| 钟祥市| 安龙县| 宾阳县| 贵定县| 吐鲁番市| 霍邱县| 南京市| 赞皇县| 高雄市| 蓬安县| 大丰市| 泽州县| 当阳市| 龙游县| 玛纳斯县| 商水县| 梁河县| 宝山区| 桑植县| 营口市| 天门市| 台湾省| 南宫市| 祁门县| 晋江市| 十堰市| 陇南市| 鄂尔多斯市| 顺义区| 鄂托克旗| 德保县| 昂仁县| 屯留县| 和静县| 永川市| 东阿县| 南安市| 台安县| 宁陕县|