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