一、电商整体分布式拓扑架构
1.1 整个电商拓扑架构分3层:
- 流量入口层:负载、网关
- 业务层:应用服务、中间件
- 数据层:Redis、DB
负载和网关,更多是基础架构负责。
本文高并发和高可用,重点将在应用服务、数据层。
架构拓扑可以帮我们了解,整体运行机制。作为架构师,我们重点要做的是下一步摸底
1.2 梳理核心业务链路:
通过核心业务链路,在各节点间运行的结果,判断上下游服务能力是否对等,寻找薄弱点。
此时需要借助的性能指标工具:Grafana (Metric、TOMCAT、POD等)、skywalking、CAT等
梳理形式,给出了详细样例文档表格,详见第三章

二、电商代码部署运行环境
部署运行环境分为3层:
- 底层:硬件、容器
- 中间层:JVM虚机 、 TOMCAT
- 上层:应用代码
本文的重点,是中间JVM、TOMCAT配置和上层的应用代码层,后面章节有专项介绍。
注意:大家接手一个应用,一个要去拉取JVM、TOMCAT相关的配置,关注应用依赖的各种代理Agent。

三、核心业务链梳理样例
3.1 核心主流程梳理
样例:线上用户下单流程
- 进站
- 首页
- CMS资源会场
- 商品列表
- 商品详情
- 领券
- 加购
- 确认订单
- 下单
- 支付
- 订单详情
3.2 功能调用链梳理
以前置聚合系统,展示商品详情页为例, 对前端接口如下:
- url: /frontAggr/productDetail/主信息 日常峰值QPS 50W,TP99 50ms
- url: /frontAggr/productDetail/物流时效, 日常峰值QPS 50W,TP99 50ms
- url: /frontAggr/productDetail/详情信息, 日常峰值QPS 30W,TP99 30ms
- url: /frontAggr/productDetail/其他, 日常峰值QPS 20W,TP99 50ms
前置聚合系统依赖的,下游各服务的接口如下:
重点注意:下游接口承诺支撑的QPS是否足以支撑自身、 每日超时次数、触发的访问限流次数等
| 接口地址 | 接口功能简述 | 可支承QPS/TPS | TP9999-耗时ms | Feign 超时 ms | 所属应用 | 依赖数据库 | 依赖Redis | 依赖下游接口 | 有限流保护 | 功能可降级 | 500ms超时次数/天 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| /product/detail | 商品主信息 | 100W | 20 | 40 | xxx | 否 | 是 | 是 | 是 | 否 | xxx |
| xxx | 价格、税费信息 | ||||||||||
| xxx | 库存信息 | ||||||||||
| xxx | 营销信息 | ||||||||||
| xxx | 店铺信息 | ||||||||||
| xxx | 配送信息 | ||||||||||
| xxx | 销量、历史购买记录 | ||||||||||
| xxx | 商品详情 | ||||||||||
| xxx | 商品评价 | ||||||||||
| xxx | 商品提问 | ||||||||||
| 其他 |
3.3 调用链应用梳理
面向前端的第一个系统是:“业务端聚合系统”,以这个系统加载商品详情页为例,
该系统的配置情况: 8C16G,120台,依赖Redis。
如果只作为一个开发,无需关注整个调用链应用。但作为资深的架构师,需要关注上下游服务能力是否匹配,此时上下游链路上,应用服务数量、CPU和内存使用率,就有意义。
| 应用名称 | 业务域 | 机器配置 | 集群数量 | 可弹性扩容 | CPU率 | 内存率 | 磁盘率 | 依赖数据库 | 依赖Redis | 依赖ES | 依赖MQ | 依赖KAFKA | 依赖JOB | 备注 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| com-product-query | 商品域 | 8C16G | 80 | 是 | 10%-40% | 50%-80% | 20% | 是 | 是 | 是 | 是 | 是 | 是 | 无 |
3.4 应用环境配置
重点关注如下配置
- JVM配置:GC类型、内存分配是否合理(JVM章节单独讲解)
- TOMCAT配置:连接和线程是否匹配
- Feign、Robbin、Hystrix 超时配置
四、本章重点总结
从拓扑上识别流量来源,通过梳理识别潜在危机
我们接手的不止是代码,还要关注系统部署运行环境
本文探讨了电商的整体分布式拓扑架构,包括流量入口层、业务层和数据层,强调应用服务和数据层在高并发和高可用中的重要性。同时,梳理了核心业务链路,通过性能指标工具进行监控,并提供了核心主流程和功能调用链的样例。还介绍了代码部署运行环境,重点关注JVM、TOMCAT配置和应用代码。最后,总结了识别流量来源和潜在危机的方法。

166

被折叠的 条评论
为什么被折叠?



