MTOP2015双11整体网络拓扑
2015年双11, mtop迁移到accs,进行了去中心化改造,并承接了部分pc的活动业务,形成了下面的结构图。
一、AServer/WJAS
AServer/WJAS都是nginx的定制版本.
WJAS是2014年的网关技术,实现了单向的spdy和slight-ssl v1,支持标准https, 三地四单元都有布署,接入域名为api.m.taobao.com (*.api.m.taobao.com). 负责传输层的加解密和向后端的转发规则。ACCS改造后正在向AServer迁移,目前已经迁走大部分流量
AServer是2015年的网关技术,实现了双向的spdy和slight-ssl v2, 目前不支持https, 三地四单元都有布署,接入域名为acs.m.taobao.com(*acs.m.taobao.com, 这样的目的是为了减少ssl证书数量, 风险是域名冲突,在单元化设计上已经可以解决), 负责传输层的加解密和向后端的转发规则;支持连接层的鉴全,并且通过双向心跳维持长连接,并负责向location上报上线下线通知。 2015双11的主力流量全部在这个网关上。
转发规则:包括单元化转发规则,异地容灾业务的转发规则, 去中心化转发规则。
二、交易去中心化
交易去中心化,是指carts, buy, tm相关的api在aserver上直接转发到对应的应用上,跳过mtop这一层,同时保持对客户端的透明(相当于在carts等服务器上能通过二方库mtop-service-sdk实现了mtop的全部功能), 这样的目的是减少mtop这一层的机器数和降低链路的复杂性,同时能复用客户端长连的优化,并且保持api编程方式的一致性。
三、详情去中心化
详情去中心化类似交易,不同的是因为详情转发给的是共享的统一接入层,这里没用到mtop-service-sdk, 由业务方自己编码进行的兼容;另一个区别是分发上对普通商品采用一致性hash(提高命中率),对热点商品使用了rr(避免单机挂掉,因为热点商品在每一个节点都是全量数据)。
四、红包雨活动
为了让活动的服务端只开发一遍,pc复用了手淘的mtop-api, 由于pc采用的是https, aserver上不支持,而wjas容量不足,这时通过一个新的定制域名,将pc流量引导到统一接入层进行https卸载,再转发明文http给aserver.
五、alipay
支付宝通过server端到server端的调用方式复用了电商的业务。
下图是mtop关联的接入层在三地四单元的布署图