Warning: mkdir(): No space left on device in /home/www/wwwroot/Z1024.COM/func.php on line 127

Warning: file_put_contents(./cachefile_yuan/irealbest.com/cache/05/595e0/4baec.html): failed to open stream: No such file or directory in /home/www/wwwroot/Z1024.COM/func.php on line 115
講述威海網站建設的關鍵技術優化點-威海麻豆直播免费版網絡科技有限公司




  • 麻豆直播免费版,麻豆传媒在线网站观看播放,91麻豆网站在线观看,麻豆免费在线视频观看

    威海麻豆传媒在线网站观看播放

    威海網頁設計製作
    您的當前位置: 首 頁 >> 新聞中心 >> 公司新聞

    講述威海網站建設的關鍵技術優化點

    發布日期:2019-01-08 作者: 點擊:

    大流量讀係統的設計手段,當這些手段全部窮盡以後,仍然產生大流量又該如何處理呢?所以秒殺係統還要解決以下關鍵問題。

     

    1.威海網站建設Java處理大並發動態請求優化的問題

     

    Java和通用的Web服務器( Nginx或 Apache)相比,在處理大並發的HTP請求時要弱一點,所以一般麻豆直播免费版都會對大流量的Web係統做靜態化改造,讓大部分請求和數據直接在 Nginx I服務器或者Web代理服務器( Varnish、 squid等)上直接返回(可以減少數據的序列化與反序列化),Java層隻處理少量數據的動態請求。針對這些請求可以使用以下優化手段:


    直接使用威海網絡公司Servlet處理請求。避免使用傳統的MVC框架,這樣可以繞過一大堆複雜且用處不大的處理邏輯,節省1毫秒的時間一取決於對MVC框架的依賴程度;


    直接輸出流數據。使用 resp. getoutputstreamo而不是 resp. get Writer)可以省掉一些不變字符數據的編碼,提升性能;數據輸出時,推薦使用JSON而不是模板引擎(一般都是解釋執行)來輸出頁麵。


    2.同一商品被大並發讀的問題


    也許有91麻豆网站在线观看讀者會覺得這個問題很容易解決,無非就是將熱點數據放到Tair緩存裏。集中式Tair緩存為了保證命中率一般都會采用一致性Hash,所以同一個key會落到同台機器上。雖然單台Tair緩存機器也能支撐1秒30萬次的請求,但還是遠不足以應付大秒級別的熱點商品,該如何徹底解決單點的瓶頸呢?答案是采用應用層的Localcache,即在秒殺係統的單機上緩存商品相關的數據。那麽如何 Cache數據?答案是劃分成動態數據和靜態數據分別處理。


    像商品的標題和描述這此機器上、並一直緩存到秒殺結束像庫存這類動態數據會采用被動失效的方式緩存一定時間(一般是數秒),失效後再去Tai緩存拉取最新的數據。


    威海網站推廣讀者可能還會有疑問,像庫存這種頻繁更新的數據一旦數據不一致會不會導致超賣?這就要用到前麵介紹的讀數據的分層校驗原則了,讀的場景可以允許一定的髒數據,因為這裏的誤判隻會導致少量原本無庫存的下單請求被誤認為有庫存,可以等到真正寫數據時再保證最終的一致性,通過在數據的高可用性和一致性之間的平衡來解決高並發的數據讀取問題。


    3.同一數據大並發更新問題


    采用 Localcache和數據的分層校驗可以一定程度上解決大並發讀問題,但是無論如何還是避免不了減庫存這類的大並發寫問題,這也是秒殺場景中最核心的技術難題。


    同一數據在威海網站建設數據庫裏肯定是一行存儲( MYSQL),所以會有大量的線程來競爭INNODB行鎖,並發度越高時等待的線程也會越多,TPS會下降而RT會上升,數據庫的吞吐量會嚴重受到影響。這裏會出現一個問題,即單個熱點商品會影響整個數據庫的性能,出現麻豆直播免费版不願意看到的0.01%商品影響9999的商品的情況。此處的解決思路也是要遵循前麵介紹的第一個原則“隔離” 把熱點商品放到單獨的熱點庫中盡管這會帶來維護的麻煩(要做熱點數據的動態遷移以及單獨的數據庫等)把熱點商品分離到單獨的數據庫並沒有解決並發鎖的問題,要解決並發鎖問題有以下兩種辦法。


    第一種是在應用層做排隊。按照商品維度設置隊列順序執行,這樣能減少同一台機器對數據庫同一行記錄操作的並發度,也能控製單個商品占用數據庫連接的數量防止熱點商品占用太多的數據庫連接。


    第二種是在數據庫層做排隊。應用層隻能做到單機的排隊,但是應用層機器數量很多,用這種排隊方式控製並發仍然是很有限的,如果能在數據庫層做全局排隊是最理想的。數據庫團隊開發了 MYSQL的 INNODB層上的 patch,可以做到在數據庫層上對單行記錄並發排隊。


    你可能會有疑問:排隊和鎖競爭不都是要等得嗎,有何區別?如果熟悉 MYSQL的話,應該知道 INNODB內部的死鎖檢測以及 MYSQL Server和 INNODB的切換會比較耗性能, MYSQL核心團隊還做了很多其他方麵的網站製作優化,如 COMMIT_ON_ SUCCESS和 ROLLBACK ON FAIL的 patch,配合在SQL裏麵加hint,在事務裏不需要等待應用層提交 COMMIT而在數據執行完最後一條SQL後,根據 TARGET AFFECT ROW結果就直接提交或回滾,這樣可以減少網絡的等待時間(平均約0.7毫秒)。


    威海網站建設

    本文網址:http://www.irealbest.com/news/647.html

    相關標簽:威海網站建設,威海網絡公司,威海網站推廣

    最近瀏覽:

    91麻豆网站在线观看

    谘詢熱線:0631-5991887

    地址:山東省威海市經濟技術開發區嘉和國際

    威海網站建設,威海網絡公司,威海網頁設計製作

    在線客服
    分享 一鍵分享
    歡迎給麻豆直播免费版留言
    請在此輸入留言內容,麻豆直播免费版會盡快與您聯係。
    姓名
    聯係人
    電話
    座機/手機號碼
    郵箱
    郵箱
    地址
    地址
    網站地圖