2

我的专栏地址:我的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、超时告警减少。

4.2、以http2方式接入,效果会更好。

誉儿
173 声望1.2k 粉丝