挫敗感強烈

對于舊項目我一直在嘗試尋找優化點,這個月的版本終于下定決心進行一個優化,主要圍繞的就是mq的文件傳輸方式。

AMQ提供Blobmessage的方式傳輸文件,對于性能壓力不大的場景表現很好,但是如果出現幾千個client同時取一個文件的時候,成功率很低,有這幾個現象:

  1. client與mq的http端口的連接無法釋放,client顯示下載時卡在inputstream的read()方法上。且用tcpdump抓包時發現服務端與客戶端的連接上已經沒有數據交互了。
  2. mq服務器的操作系統日志報錯syn flooding,懷疑判斷大量下載文件的請求是洪水攻擊。

想了幾個解決方法,在必須使用blobmessage的前提下,放慢消息的下發速度,將負載在時間維度分散。同時blobmessage會發送到mq集群的多臺mq上,將負載在空間維度分散。此外,還進行了mq和操作系統的參數調優。

但是問題沒有得到解決,兩個現象仍然出現,且隨著一個個文件的下發,mq上僵死的連接數量會持續增多。進一步影響到mq的性能。

折騰了3周的問題,一個個解決方案的提出,開發,測試,然后失敗。挫敗感越來越強烈了。

還有什么方向可以嘗試呢。。。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容