淘寶top平臺呼叫介面響應時間優化
top介面響應時間優化
一、背景
呼叫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、超時告警減少。