提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容

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

          1、  眾多子系統(tǒng)構(gòu)成

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

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

          對于眾多子系統(tǒng)構(gòu)成的應(yīng)用而言,如何管理并不是全部,還有其他很多相伴而來的問題也是需要解決的,例如跨子系統(tǒng)的調(diào)用時,如何保證整個調(diào)用過程的事務(wù)、雪崩效應(yīng)等。

          標(biāo)準(zhǔn)化是管理好眾多子系統(tǒng)的根本,并且它要求的是架構(gòu)級的全局支持,因此在本書中首先講解這個形容詞定語的解決方案以及所需的知識體系,也就是本章節(jié)的重點。

          2、  承受高壓力

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

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

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

          3、  具備高性能

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

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

          4、  具備高可用性

          大型企業(yè)應(yīng)用和互聯(lián)網(wǎng)應(yīng)用,都要求系統(tǒng)7 * 24小時不間斷的穩(wěn)定運行,如何才能保證系統(tǒng)在各種各樣的訪問情況下都不宕機,這對于系統(tǒng)的實現(xiàn)人員來說是個巨大的挑戰(zhàn)。

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

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


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

          評論

          # re: 提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容[未登錄] 2009-03-06 09:26 EricFan

          嚴(yán)重期待!  回復(fù)  更多評論   

          # re: 提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容 2009-03-06 10:07 sxy

          對我的工作很有借鑒意義,真希望現(xiàn)在就能看到  回復(fù)  更多評論   

          # re: 提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容 2009-03-06 10:28 hyde

          超級嚴(yán)重期待!  回復(fù)  更多評論   

          # re: 提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容[未登錄] 2009-03-06 12:48 Titan

          期待盡快看到!  回復(fù)  更多評論   

          # re: 提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容 2009-03-06 13:32 lbom

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

          # re: 提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容 2009-03-06 16:15 BlueDavy

          @lbom
          非常同意lbom的話,不過本書的目的不是為架構(gòu)師提供成熟的解決方案,只是講解在構(gòu)建這類系統(tǒng)上會涉及到的知識體系,只是想通過這本書能夠讓沒有大型系統(tǒng)環(huán)境的開發(fā)人員、技術(shù)人員們能夠?qū)@些知識體系有所了解,我還不敢對架構(gòu)師們提出指導(dǎo),沒那么強...  回復(fù)  更多評論   

          # re: 提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容 2009-03-06 17:46 楊一

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

          # wdmcln 2009-03-12 23:52 wdmcln

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

          # re: 提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容 2009-03-13 17:52 qingxiaohua

          頂,期待中~~~  回復(fù)  更多評論   

          # re: 提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容 2009-03-17 16:35 動物園的豬

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

          # re: 提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容[未登錄] 2009-05-09 22:07 steeven

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

          # re: 提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容 2009-05-15 11:41 geoconst

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

          # re: 提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容 2009-07-30 13:15 于堡艦

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

          # re: 提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容 2009-07-30 13:37 BlueDavy

          @于堡艦
          呵呵,當(dāng)然在寫的,會如期上市的,多謝關(guān)注。
            回復(fù)  更多評論   

          # re: 提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容 2009-09-09 10:32 xiaoleigood

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

          # re: 提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容 2009-09-09 13:13 BlueDavy

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

          # re: 提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容 2009-10-07 03:48 lxa

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

          # re: 提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容 2009-10-10 10:21 wzjin

          不要泛泛而談,需要真的可以指導(dǎo)工作才行。  回復(fù)  更多評論   

          # re: 提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容 2010-01-28 15:33 Jose

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

          # re: 提前N久的揭秘:《構(gòu)建高性能的大型分布式Java應(yīng)用》書的大概內(nèi)容 2010-01-28 23:20 BlueDavy

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

          公告

           









          feedsky
          抓蝦
          google reader
          鮮果

          導(dǎo)航

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

          統(tǒng)計

          隨筆分類

          隨筆檔案

          文章檔案

          Blogger's

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 惠安县| 永登县| 德安县| 北海市| 调兵山市| 扎鲁特旗| 奎屯市| 秦皇岛市| 青州市| 华容县| 南阳市| 岗巴县| 沙田区| 万源市| 上高县| 武强县| 澜沧| 章丘市| 榆社县| 西昌市| 甘孜县| 仪征市| 昭苏县| 涟水县| 天门市| 临江市| 珠海市| 万全县| 六安市| 宜昌市| 廊坊市| 和顺县| 嵊泗县| 彭泽县| 武冈市| 潢川县| 肇庆市| 醴陵市| 余姚市| 平陆县| 晋州市|