我的專欄地址:我的segmentfault,歡迎瀏覽
一、背景
調用top接口的響應時間長(160ms左右),超時和連接異常頻繁發生。導致消息組件消費工程的tps遇到瓶頸(單實例單消息隊列250tps),只能通過增加實例數來支撐更高的消費能力。
二、目標
1、最大程度降低top接口的響應時間。
2、減少超時和連接異常的次數。
三、優化過程
階段一
按top接口文檔接入,以jws的AsyncHttp類作為http客戶端。
接口文檔:http://open.taobao.com/docs/doc.htm?spm=a219a.7629140.0.0.iGIk9k&docType=1&articleId=101617&treeId=1
使用的top網關地址:https://eco.taobao.com/router/rest
測試結果:
關鍵詞 Connection:close 說明服務端主動關閉了連接,連接無法復用。
階段二
向top網關的接口人詢問網關是否主動連接復用,反饋:http1.1都會主動關閉連接。
測試網關地址:
使用http2測試結果,同樣會主動關閉連接,并沒有支持http2。
再次向top網關接口人詢問為什么會主動關閉連接,工作人員回復: 提供一個新的top網關地址
再次測試網關地址:
連接可復用。
切換新地址再次測試top:
階段三
發布生產環境驗證:
1、push消息響應時間由160ms --> 60ms。
2、超時告警減少。
? ? ? ? ? ? ? ? ?
四、后續
4.1、將優化的方式實現到其他接口
發布生產環境驗證:
1、接口一響應時間由153ms --> 47ms。
2、接口一響應時間由147ms --> 45ms。
3、超時告警減少。