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

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

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

    笨笨的思想片斷

    零碎片斷,雜七雜八。
    posts - 25, comments - 79, trackbacks - 0, articles - 0

    減少全局競爭性同步,提高應(yīng)用的垂直擴(kuò)展能力

    垂直擴(kuò)展,簡單的說,是當(dāng)單一系統(tǒng)硬件升級擴(kuò)展時,如增加CPU,內(nèi)存,應(yīng)用程序能夠隨之線性提高業(yè)務(wù)處理能力。
    多線程是服務(wù)端 Java 應(yīng)用的標(biāo)準(zhǔn)處理方式,其優(yōu)點不用贅述。本文要討論的是,如何在設(shè)計階段降低多線程之間的競爭性同步開銷。

    假設(shè)一個Web應(yīng)用,需要為當(dāng)前用戶維護(hù)在線用戶信息。此用戶信息列表會放在 Application 范圍的一個 Map 中,那么我們增加或刪除一個在線用戶的操作會是這樣:。
    Map clientMap = ...// from Application Context
    synchronized(clientMap){
     clientMap.put(clientId,clientObject);
    }
    這是一個典型的全局同步代碼,當(dāng)并發(fā)線程增加時,這部分代碼就有可能會存在潛在垂直擴(kuò)展瓶頸。

    最簡單解決辦法:用 ConcurrentHashMap。
    ConcurrentHashMap的多線程下的表現(xiàn)要比HashMap好的多,可以做到隨著線程數(shù)增長性能基本保持穩(wěn)定。
    參見:http://www-128.ibm.com/developerworks/cn/java/j-jtp07233/index.html
    對 ConcurrentHashMap 的分析,參見:http://www-128.ibm.com/developerworks/cn/java/j-jtp08223/index.html


    在 ConcurrentMap/ConcurrentLinkedQueue 不能幫助我們的情況下,我們需要明確設(shè)計以避免全局競爭。
    基本原則是:
    1 預(yù)分配,降低爭用出現(xiàn)的頻率。
    2 降低鎖的粒度,將全局競爭變?yōu)榫植扛偁帯?/P>

    預(yù)分配策略示例:
    對于一在線交易處理系統(tǒng),需要為每個交易生成交易流水號,假設(shè)有多臺交易服務(wù)器按照集群方式配置,同時提供服務(wù)。那么需要在交易服務(wù)器之間進(jìn)行同步,以保證交易流水號的正常增長。
    一種處理方式為:在數(shù)據(jù)庫中保存當(dāng)前交易流水號的最高值,每臺機(jī)器一次預(yù)分配1000流水,內(nèi)部采用線程同步進(jìn)行分配,用完再從數(shù)據(jù)庫分配。這里數(shù)據(jù)庫充當(dāng)了全局存儲和全局同步工具,如果每來一條交易,就訪問一次數(shù)據(jù)庫,考慮到數(shù)據(jù)庫同步和事務(wù)的負(fù)擔(dān),這里會成為嚴(yán)重的性能瓶頸。

    降低鎖粒度策略示例:
    1 ConcurrentHashMap 本身就是個很好的模范。它采用32顆鎖,來代替普通 HashMap 的單顆對象鎖。
    2 對于數(shù)據(jù)庫中并發(fā)大的表,可以考慮將表級鎖改為行級鎖,提高并發(fā)性。

    暫時想不起來示例,有空再補(bǔ)

    Feedback

    # re: 減少全局競爭性同步,提高應(yīng)用的垂直擴(kuò)展能力  回復(fù)  更多評論   

    2005-12-13 00:07 by 非魚
    笨笨,有沒有興趣加入“架構(gòu)師之家”啊?

    # re: 減少全局競爭性同步,提高應(yīng)用的垂直擴(kuò)展能力  回復(fù)  更多評論   

    2005-12-13 09:32 by 笨笨
    這個,其實我性格疏懶;
    怕難以擔(dān)此名,反誤了大事。
    主站蜘蛛池模板: 精品亚洲456在线播放| a拍拍男女免费看全片| 黄瓜视频高清在线看免费下载| 久久久久亚洲精品美女| 黄色网页免费观看| 国产片免费在线观看| 亚洲乱色伦图片区小说| 歪歪漫画在线观看官网免费阅读 | 亚洲国产精品一区第二页| 人碰人碰人成人免费视频| 亚洲国产精品激情在线观看| 青青草国产免费国产是公开| 亚洲日韩中文在线精品第一| 精精国产www视频在线观看免费| 亚洲婷婷国产精品电影人久久| 全免费a级毛片免费**视频| 国产亚洲漂亮白嫩美女在线| 亚洲一区无码精品色| 日韩a在线观看免费观看| 一级毛片免费播放男男| 亚洲毛片免费观看| 最新猫咪www免费人成| 有码人妻在线免费看片| 亚洲乱码国产乱码精华| 亚洲自国产拍揄拍| 成人亚洲综合天堂| 免费网站看av片| 国产成人精品亚洲日本在线| 亚洲综合激情九月婷婷| 久久亚洲国产成人亚| 久久亚洲综合色一区二区三区| 在线亚洲午夜理论AV大片| 五月亭亭免费高清在线| 18观看免费永久视频| 亚洲AV无码国产一区二区三区| 亚洲色偷偷偷鲁综合| 成人免费视频88| 和日本免费不卡在线v| a色毛片免费视频| 亚洲精品中文字幕无乱码麻豆| 亚洲资源在线视频|