头图

浅谈订单系统重构之路-线上真实案例分享

前言

最近负责了订单重构项目,从技术方案设计,到人员安排,到最终落地,项目圆满完成。
虽然重构项目做了很多次,每次都是在挑战极限,在时间紧任务重的情况下,有条不紊的推进。最终提测质量高,平稳上线,此文章记录一下。

背景

  1. 原订单单库单表,数据量大,已到达性能瓶颈,且无法水平扩容。
  2. 订单增长迅速,重构迫在眉睫。

目标

  1. 订单分库分表,方便后期水平扩展
  2. 订单流程改造,并且平滑过渡到新流程。

重构方案

注: 所谓重构方案,一定是基于特定场景的,没有统一方案,但核心思想是一样的。

场景: 网约车场景,下单量大,但是大部分订单会派不上司机取消。

方案: 增加派前订单表,派前订单表分库分表, 派上司机后,订单进入派后表(老表)

此方案优势: 不影响派后订单流程(例如,司机端流程,计费流程),压力集中在派前表,同时派前表数据无需长时间保留(例如7天归档)。派前订单表数据量极小,查询写入效率高。

img.png

分库分表方案:

img.png

灰度方案

按流量灰度,分为5个阶段,平滑过渡到新流程

一阶段二阶段三阶段四阶段五阶段
十万分之一千分之一10%50%100%

时间安排

img.png

开发人力: 4人7个工作日

测试人力: 6人3个工作日

灰度时间: 2周

注: 虽然时间紧,任务重,该有的流程不能忽视

重构收益

本次重构如期上线,并且测试阶段bug极少,可以说超预期。

1) 资源不变情况下,下单接口性能提升N倍(N>4)。

2) 重构后下单接口RT<50ms, 基础服务(dubbo服务)下单接口 RT < 5ms。

3) 订单分库分表,分了256张表,8个库,目前在一个数据库集群,最多支持8个数据库集群水平扩展。

4)订单架构分层,分为业务层和数据层,订单内部通信改为RPC通信。

温馨提示

欢迎关注“浅谈架构” 公众号,不定期分享原创文章。

file

7 声望
0 粉丝
0 条评论
推荐阅读
浅谈Mysql分库分表之实战篇
一、背景发布上篇文章浅谈订单重构之路之后,有很多小伙伴想知道,分库分表具体是如何实现的。 那么这篇文章具体介绍下,分库分表实战篇。二、目标本文将完成如下目标:​ 分表数量: 256 分库数量: 4以用户ID(user_...

bytearch阅读 1.1k

Java8的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft32阅读 27.6k评论 1

一文彻底搞懂加密、数字签名和数字证书!
微信搜索🔍「编程指北」,关注这个写干货的程序员,回复「资源」,即可获取后台开发学习路线和书籍来源:个人CS学习网站:[链接]前言这本是 2020 年一个平平无奇的周末,小北在家里刷着 B 站,看着喜欢的 up 主视...

编程指北71阅读 33.7k评论 20

Java11的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft28阅读 19.4k评论 3

Java5的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft13阅读 21.8k

Java9的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft20阅读 15.4k

Java13的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft17阅读 11.2k

7 声望
0 粉丝
宣传栏