分库分表实战之最初的我们:了解一下单库外卖订单系统
「 关注“石杉的架构笔记”,大厂架构经验倾囊相授 」
点击图片 查看详情
导读 | 儒猿技术团队将在“石杉的架构笔记”、“狸猫技术窝”、B站:”儒猿架构“以连载的形式(图文/视频)为读者送出最新制作的“基于ShardingSphere的分库分表实战”(免费)中的部分内容,希望和读者朋友一起探究业务发展中的问题,特别是数据库的性能瓶颈问题。希望各位读者朋友喜欢。
前 言
上一期内容我们整体了解了分库分表实战项目当前使用的系统架构,也就是单库版本订单系统的系统架构。同时,我们也知道了未来要做的分库分表版本的订单系统架构。现在,我们就从单库版本的订单系统开始,一步一步的来进行优化。
如果想要优化单库版本的订单系统,首先要了解目前的订单系统有哪些核心功能,核心功能的业务流程是什么。
如果你刚入职了这家初创型互联网公司,而你所在的部门又刚好是做外卖APP的订单系统的,那你认为入职之后要干的第一件事是什么呢?
必须是了解整个订单系统,你的leader可能会直接给你发个wiki,这个wiki中包含了单库版本的系统架构图,如下图:
并且,在这个wiki中除了有系统架构图之外,还有很多核心接口的业务流程图,通过这些业务流程图,可以快速了解到订单系统核心接口的业务流程。
那订单系统中,有哪些核心接口的业务流程图?现在,我们一起来看一下。
用户下单流程
大家或多或少都是点过外卖的,订单系统涉及用户和商家两个角色的功能,先来看一下C端,即用户端的一些业务流程,首先就是用户下单的操作。
用户可以在外卖APP中点外卖,当用户选中一个商品之后,会提交订单,接着就会发起一个创建订单的请求,如下图:
随后,Service组件再将组装好的订单信息转交给Repository组件处理,Repository组件通过Mapper组件,最终将订单的信息保存到数据库中。
当然,用户正式下单之后,是需要支付订单的,但是支付相关的功能,这里可以暂时不用关注。
用户查询订单列表流程
当用户完成下单之后,用户可能要看一下自己曾经下过哪些订单,所以,订单系统还支持订单列表查询,如下图:
然后,Controller组件会把请求参数,通过Service组件传到Repository组件上,然后Repository组件可以调用Mapper组件的接口,再到数据库中查询用户的所有订单信息,查询结果最后会形成一个订单列表,最后一步步返回给用户。
最终,用户就可以从订单列表中,看到自己下过的所有订单信息了。
用户查看订单详情流程
如果用户还想要看下某个订单里面的详细信息,此时业务流程图如下所示:
随后,Service组件携带着订单号,将查询订单明细的请求交给Repository组件来查询,Repository组件根据订单号调用Mapper组件的接口,接口会到数据库中查询订单及订单明细的信息,最后将查询出来的订单明细信息返回给用户。
用户取消订单流程
另外,用户下单之后也是支持取消订单的,当用户要取消一个订单时,也会发送一个取消订单的请求,如下图:
商家也会查看订单列表以及订单的明细信息,而且,当用户下单之后,商家可以选择接单或者拒接,一旦商家选择接单,那么订单状态就会变为“已接单”,这些功能在我们的外卖订单系统中都是支持的。
结束语
B站视频链接:https://sourl.cn/GJ8mwU
下期连载预告:“分库分表实战之幸福的烦恼:流量大爆发啦!”
如果您对本内容或儒猿团队有任何意见和建议,欢迎您通过留言或客服与我们交流,帮助儒猿成长。儒猿将会为不定期送出 精美礼品 以感谢大家的关爱与帮助。 |
点个在看你最好看