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

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

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

    莊周夢蝶

    生活、程序、未來
       :: 首頁 ::  ::  :: 聚合  :: 管理

    資源獲取模式

    Posted on 2008-09-07 22:10 dennis 閱讀(2483) 評論(1)  編輯  收藏 所屬分類: 模式與架構java
        任何應用都需要與資源打交道,這個資源可能是文件、內存、網絡、數據庫、web服務等。特別是系統的可伸縮性和性能上,一個系統的可伸縮性很大程度上取決于該系統資源管理的可伸縮性。資源的獲取是資源生命周期的起點,因此在此階段的優化和配置對系統性能、可用性、穩定性、可伸縮性的影響是至關重要的。資源的獲取要解決 這么兩個問題:怎么找到資源,何時獲取資源。
        資源的超找可以通過lookup模式,所謂lookup模式就是引入一個查找服務作為中介,讓資源使用者可以 找到并使用資源提供者提供的資源。這方面一個顯然的例子就是JNDI,我們通過JNDI查找EJB、數據庫連接池等,另一個例子就是RMI,客戶端通過命名服務查找到遠程對象。查找服務提供查詢語言,也提供接口讓服務注冊到它的容器內。
        何時獲取資源?根據時機的不同可以分為預先獲取模式和延遲獲取模式。如果對系統的可用性和運行時性能要求比較高,那么可能你會預先加載或者分配所要用到的資源,通過一個資源提供者的代理對象攔截對資源的請求,返回預先加載或者分配的資源,從而提高系統性能。這方面的例子就是 memcached,memcached啟動時預先分配內存來提高性能(相應的帶來的是內存的不能有效利用)。線程池、數據庫連接池也是預先獲取模式的例子,通過預先創建的線程或者數據庫連接,來提高系統的整體性能。反之,延遲獲取模式就是盡可能到使用資源的最后一刻才去獲取資源,一開始返回的只是一個資源的代理對象,真正使用到資源的時候由這個代理對象去加載實際的資源。延遲獲取模式的例子也很多,例如 Hibernate的延遲加載,延遲加載的對象其實是一個代理類(通過java動態代理或者cglib增強),只有真正用到的時候才去數據庫獲取實際的數 據。函數式編程中的延時求值也是延遲獲取模式的例子,沒有求值前只是個promise,求值到的時候才force執行。Singleton模式下的單例也常常做延遲初始化,這是延遲獲取模式的特化。
        如果資源的大小很大、極大或者是未知尺寸,預先獲取會導致系統速度的緩慢甚至耗盡系統資源,延遲獲取在獲取的時候也可能時間過長難以忍受或者耗盡系統資源,兩者都不適合,解決辦法就是分步獲取,這就是所謂部分獲取模式。將資源的獲取分為兩步或者多步,每一步獲取一定數目的資源,每一步獲取資源也可以采用預先或者延遲的策略。這樣的例子如socket讀數據到緩沖區,一次可能只讀一部分數據到緩沖區,分步才讀完。再比如web頁面一棵樹的展 現,一開始可能只是顯示部分節點,在需要查看一些節點的時候才會通過ajax加載和展開它們的子結點乃至深層子結點。

    參考:POSA3 第二章

    評論

    # re: 資源獲取模式  回復  更多評論   

    2008-09-08 09:34 by Jack.Wang
    說的很好,其實微觀點每個對象都是一個資源,資源的獲取在設計上應該盡量在一個進程中,跨進程就會有網絡開銷(即使在同一臺機子),比如分布式的 CORBA,RMI,EJB,就會影響性能,所以在性能要求高的應用中盡量本地獲取資源,即單進程,大家可以看看 ebay, myspace 等等的大型網站的架構。
    主站蜘蛛池模板: 暖暖免费高清日本一区二区三区| 亚洲av无码成人精品区| 狠狠综合久久综合88亚洲| 亚洲精品无码av片| 岛国av无码免费无禁网站| 亚洲av片不卡无码久久| 久久亚洲色WWW成人欧美| 无码视频免费一区二三区| 亚洲中文字幕乱码一区| 日韩黄色免费观看| 美女免费视频一区二区三区| 国产真人无码作爱视频免费| 亚洲国产一成人久久精品| 亚洲日韩一区二区三区| 日本一道本高清免费| 美女免费视频一区二区| 亚洲最大AV网站在线观看| 精品四虎免费观看国产高清午夜| 亚洲AV日韩AV永久无码绿巨人| 久久黄色免费网站| 亚洲国产成人精品青青草原| 成人奭片免费观看| 黄色免费在线观看网址| 亚洲色婷婷一区二区三区| 久久免费的精品国产V∧| 亚洲视频无码高清在线| 免费v片在线观看无遮挡| 波霸在线精品视频免费观看| 亚洲丝袜美腿视频| 午夜无遮挡羞羞漫画免费| 一区二区免费国产在线观看| 免费无码又黄又爽又刺激| 国产精品自拍亚洲| 中文字幕人成无码免费视频| 亚洲国产无套无码av电影| 在线美女免费观看网站h| 亚洲国产欧美日韩精品一区二区三区 | 亚洲综合伊人久久综合| 在线看无码的免费网站| 美女的胸又黄又www网站免费| 亚洲av中文无码乱人伦在线播放 |