每日优鲜属于互联网电商,交易订单系统皆在服务c端用户在企业平台上下单购买自己的商品。属于电商行业不可或缺的重要一环。
点击空白处退出提示
每日优鲜属于互联网电商,交易订单系统皆在服务c端用户在企业平台上下单购买自己的商品。属于电商行业不可或缺的重要一环。
1:电商核心交易流程,生单、支付、数据入库、订单查询等
2:订单架构演变,数据库分库分表扩容、系统稳定性建设
3:保证大促和日常消费场景下订单系统的稳定性,包括查询效率、qps提升、数据冷备、接口稳定等。
项目描述:
每日优鲜电商核心链路交易系统中的订单服务,整体为正向和逆向。正向包括购物车、生单(拆单)、支付、履约配送,逆向包括取消订单、售后等。
生单包括从库存服务扣减库存、营销服务核销优惠券。属于分布式事务,早期以服务维度做,订单服务调用双方 rpc 接口,库存、营销提供回滚接口,同时用 db 存储关键回滚数据信息,方便业务库存和优惠券服务失败做补偿,以此实现对于订单的分布式事务一致性。后续为了更好的支撑分布式场景,同时考虑到接口交互频繁带来的问题(失败重试、兜底、补偿等),生单核心逻辑采用框架 Seata ,保证生单的分布式强一致性。订单列表详情查询加入缓存,合理选择数据结构,以订单号作为 key ,领域名称作为 field ,领域数据作为 value ,并根据用户行为设置合理的超时时间。提升整体 QPS。
存储方面采用 shardingsphere 分库分表。由于优鲜早期交易系统对日均单量的预估不足,2019年订单存量数据已经达到了10亿+,库表情况是4库,20张表/库,平均每张表的数据达到了1000w+,所以进行订单存储结构的架构改进,包括结合各种实际情况预估数据量、数据扩容、线上平滑切换、数据底层沉淀 ES (方便后续业务的多样性)等。
项目业绩:
线上实例12台,8C16G虚拟机,订单服务平均 QPS3000(读多写少),压测场景下,生单接口单实例的最大 TPS从30提升到100,总体服务 TPS 达到1000+,整体性能提升300%。订单查询因引入缓存整体服务 QPS从2W提升到10W+。性能提升500%。
技术栈:SpringBoot、RocketMQ、Dubbo、Eureka、Nacos、ShardingSphere、ES、Redis。




评论