MTOP2015双11整体网络拓扑

2015年双11期间,MTOP进行去中心化改造,采用AServer和WJAS作为定制版nginx网关,支持spdy和slight-sslv2,实现交易和详情去中心化,同时通过定制域名处理PC流量,支付宝通过Server端调用复用电商业务。

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关联的接入层在三地四单元的布署图
在这里插入图片描述

`mtop`(MySQL Top)是一个用于实时监控 MySQL 数据库服务器状态的命令行工具,其功能类似于 Linux 系统中的 `top` 命令。它能够动态展示当前正在运行的 SQL 查询、连接状态、查询执行时间、客户端 IP 地址等信息,是数据库管理员和开发人员排查性能瓶颈、优化 SQL 语句的重要工具之一[^1]。 ### mtop 的主要用途 1. **监控实时查询状态** `mtop` 可以显示当前正在运行的 SQL 查询,包括查询语句本身、执行时间、客户端地址、用户以及当前的状态(如 Sending data、Sorting result 等)。 2. **识别长查询或慢查询** 通过 `mtop` 的界面可以快速识别出执行时间较长的查询,帮助进行性能调优。 3. **终止异常或耗时查询** 用户可以在 `mtop` 界面中选择某个查询线程并发送 `KILL` 命令,强制终止该查询的执行,避免对数据库造成进一步影响。 4. **查看服务器性能统计信息** 包括连接数、缓存命中率、InnoDB 状态、查询缓存使用情况等,有助于全面了解数据库运行状况。 5. **提供优化建议** `mtop` 会根据当前的查询状态和系统资源使用情况提供一些优化建议,例如调整配置参数等。 ### 使用方法 #### 安装 `mtop` 通常不是系统默认安装的工具,需要手动安装。可以从其官方网站下载并安装: ```bash wget http://mtop.sourceforge.net/software/releases/mtop-0.6.6.tar.gz tar -zxvf mtop-0.6.6.tar.gz cd mtop-0.6.6 perl Makefile.PL make make install ``` 安装完成后,确保 MySQL 的用户具有 `PROCESS` 权限,以便 `mtop` 能够访问线程信息。 #### 启动 mtop 启动 `mtop` 的基本命令如下: ```bash mtop --user=root --password=your_password --host=localhost ``` 其中: - `--user` 指定连接 MySQL 的用户名; - `--password` 指定对应的密码; - `--host` 指定 MySQL 服务器的地址(默认为 `localhost`)。 #### 常用操作 在 `mtop` 界面中,可以使用以下按键进行操作: - `k`:选择一个线程并终止它; - `q`:退出程序; - `r`:刷新显示; - `h`:显示帮助信息; - `d`:切换显示详细信息模式; - `f`:过滤查询结果(例如按用户、IP 等)。 #### 示例输出 ```text MySQL Threads: 5 running, 25 total Queries: 12345/s, 67890 total Threads: 25 active, 0 sleeping Query Cache Hitrate: 95% InnoDB Buffer Pool Hitrate: 99% ... ``` 该输出展示了当前数据库的运行状态,包括线程数、查询频率、缓存命中率等关键指标。 ### 注意事项 - 使用 `mtop` 需要对 MySQL 有一定的了解,尤其是 SQL 优化和系统资源管理方面; - 在生产环境中使用 `mtop` 时,应确保具有足够的权限,并避免频繁刷新或误操作; - `mtop` 对数据库性能影响较小,但仍建议在排查问题时使用,而非长期运行。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值