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

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

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

    放翁(文初)的一畝三分地

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      210 隨筆 :: 1 文章 :: 320 評論 :: 0 Trackbacks

    問題:
          高并發(fā)大壓力下發(fā)現(xiàn)TOP平臺消息會出現(xiàn)消息串掉,

    先說一下具體的原因:
    數(shù)據(jù)交互中,其中一方單獨認為業(yè)務交互失敗,邏輯回收而非物理關閉復用的信道,另一方在完成業(yè)務操作時將業(yè)務數(shù)據(jù)再次推送到已經(jīng)被邏輯回收的通道上,會導致請求和相應錯位。
    代碼層設計問題:
    1.       信道一次業(yè)務交互中的多次消息交互缺少唯一的會話碼,導致中間任何一次交互出現(xiàn)問題,后續(xù)的數(shù)據(jù)會錯位到后續(xù)復用此信道其他請求中。
    2.       底層信道的回收,異常處理,沒有在信道層直接處理,而是將錯誤通過業(yè)務堆棧拋到最外層ajp協(xié)議解析線程管理池去做,導致不論是業(yè)務捕獲異常或者是servlet,spring框架捕獲異常都會出現(xiàn)串號。
    解決方法:
    1.       在協(xié)議層增加會話碼,發(fā)現(xiàn)會話錯位,關閉信道。
    2.       讓底層信道出現(xiàn)異常自己回收和關閉信道,連接池獲取連接的時候判斷連接是否已經(jīng)無效,無效即刻移除。(不需要用拋錯誤堆棧的方式來實現(xiàn))
    后續(xù):
             TOP這邊已經(jīng)在考慮異步Web request請求處理的方式,后續(xù)在安全的要求下可以和nginx 做類似信道復用的web服務器+應用服務器的模式。
    詳細說明看下面的內(nèi)容:
    用兩張圖片說明問題。
    第一張是一次請求在JK和Jboss-web之間的交互過程。

     

    問題發(fā)生在第四步,在jboss-web向JK請求body的數(shù)據(jù)的時候可能產(chǎn)生超時或者其他IO異常,這時候直接會走到9這步,由于異常被捕獲,連接將不會被物理關閉。 


    一次請求處理的調(diào)用順序如上,按照數(shù)字順序,當在5出現(xiàn)問題的時候,AjpAprProcessor沒有自己物理關閉,而是依賴異常上拋的方式,返回到ajpAprProtocal來關閉AjpAprProcessor。簡單來做就只需要在5就地處理,關閉連接,雖然會被放入連接池,但是只要在2這個步驟使用連接池的時候檢查一下連接狀態(tài)就可以丟棄這些無效的連接。

     

     

    posted on 2010-05-11 20:00 岑文初 閱讀(2774) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 狠狠色伊人亚洲综合网站色| 国产成人无码免费视频97| 亚洲高清资源在线观看| 欧洲精品成人免费视频在线观看| 无码一区二区三区亚洲人妻| 91麻豆国产自产在线观看亚洲| 免费成人在线电影| 亚洲熟妇av午夜无码不卡| 国产成人亚洲综合无码| 69av免费视频| 又大又硬又粗又黄的视频免费看| 91亚洲国产成人久久精品网站| 精品久久久久久久免费加勒比| a毛片全部免费播放| 亚洲精品美女久久7777777| 亚洲色偷偷偷鲁综合| 成年性羞羞视频免费观看无限| 中文字幕乱码免费看电影| 亚洲精品国产suv一区88| 亚洲成AV人片在WWW色猫咪| 国产成人无码免费视频97 | 亚洲成av人片天堂网无码】| 亚洲情综合五月天| 麻豆精品国产免费观看| 24小时日本电影免费看| 久久嫩草影院免费看夜色| 亚洲av无码一区二区三区在线播放| 亚洲国产一区国产亚洲| 免费a级毛片无码a∨性按摩| 国产h视频在线观看免费| 免费成人在线电影| 精选影视免费在线 | 日本亚洲高清乱码中文在线观看| 亚洲综合激情另类小说区| 在线观看午夜亚洲一区| 免费在线观看日韩| 免费黄色大片网站| 成年网站免费视频A在线双飞| 男人进去女人爽免费视频国产| 一级做a爰片久久毛片免费看 | 免费精品国偷自产在线在线 |