应用微服务构建电商平台,用户在业务入口提交订单请求 ,请求进入订单平台处理并落地入库,然后发送创建消息给下游服务,MQ服务将创建通知发送至物流平台处理(每层服务链路都是如此流程),物流通过MQ进入调度平台将订单创建消息经调度平台发送至物流第三方进行派单(调度平台处理入库),再将第三方返回的派单消息通过MQ返回到物流平台组成完整的物流信息落地入库,完成后通过MQ将消息发送至异步回调平台,异步组件发送完整的链路消息至业务平台展现给用户;
简要描述了电商平台的订单处理核心链路过程,目前大厂的电商设计基本思路如此,可能在组件选择、应用处理上有些出入,但整体设计基本一致,其中很多细节未能尽述,在后面的章节详细展开;(架构设计图)
1.业务平台:电商平台入口,例如、微信小程序、APP(Android、IOS)、浏览器、第三方入口,完成下单、支付流转如下游;
2.订单平台:用户下单支付后第一个下游入口,解析订单信息,如,下单渠道(策略不同)、订单信息、用户信息等等,解析完成后将订单细节信息依次落库,并将信息经MQ流转到下游服务平台;
3.物流平台:通过订单信息、用户信息完成物流信息的处理,调用调度平台将信息发送至第三方物流进行派单(电商平台延时异步处理、O2O平台基本秒传),派单成功后将物流数据返回物流平台实现完整物流信息落库,成功后经MQ服务将订单及物流信息流转进入下游服务;
4.调度平台:针对物流服务角度,物流平台发送调度请求进入后,依据业务算法派送物流订单,例如,滴滴、饿了么是依据算法匹配当前用户位置半径距离内符合派送条件(调度算法内容相对复杂)的服务者,接单生产调度信息然后回调完成物流平台的信息落库;
5.异步回调平台:物流信息落库完成后变更消息状态(MQ等待回调),异步回调服务触发回调将派单信息发送通知给业务平台,用户最终收到已派单;
6.MQ服务:服务间消息流转,交互核心;
7.流控组件:保障大流量下正常提供服务组件,
8.降级组件:并发限流异常下的链路不可达状态,为保障服务或用户体验的B方案;
9.缓存组件:提示服务效率、cache组件,提升高并发下服务能力;
10.SET化组件:city化拆分,某些服务根据城市的不同有不可抗性区别(外卖),那么就要应用城市化拆分,将整体架构分成多分提供区别化服务;
11.异步化组件:规划整体架构中可异步化执行服务的组件,做异步化是为了提升整体架构的吞吐量;(提升吞吐量不是提示性能,往往是时间换空间、空间换时间的转换)
12.监控组件:对应微服务化架构设计来说监控组件是非常关键部分,日志监控、预警、告警,例如,KPS与DPS转化统计,当前1秒钟有100个下单(KPS),但是完成支付的只有50个(DPS),即统计转换为50%,那么就需要监控组件监控用户最真实的行为,给出链路中提升转换的解决方案,日志分析、用户行为分析、用户画像等等;(当前流行的各种平台的推荐都是以监控组件的统计分析为依据)
13.搜索组件:对于核心链路而言只是辅助功能,其主要面向业务平台提供用户搜索服务;
14.其他组件:微服务下需要很多庞大的基础组件;