ITPub博客

首页 > 数据库 > 数据库开发技术 > Roomwits电商服务演进之路

Roomwits电商服务演进之路

原创 数据库开发技术 作者:greencoatman 时间:2022-07-10 11:23:13 0 删除 编辑

单体架构

  • 架构简单

  • 单个应用,所有功能都全部耦合在一个应用中

  • 单个DB,所有的表都维护在一个DB中

  • 可以快速响应业务研发需求,快速开发,快速上线


单体架构-面临的问题

  • 所有的业务代码耦合在一个应用,随着业务的发展,代码越来越臃肿。

  • 随着开发团队的壮大,团队成员技术水平的参差不齐,缺乏统一的代码规范,整个应用越来越乱。

  • 新成员加入后,由于业务代码耦合在一起,需要阅读很多不是自己负责的业务代码,花费过多时间才能融入。

  • 经常出现一些慢sql,影响整个DB性能,甚至影响整个DB挂掉,影响全部业务不能运转。

  • 各种业务代码耦合在一起,开发效率低,每次测试以及上线发版,均需要消耗过多时间。



转变:垂直应用架构

  • 从单体应用按照业务垂直拆分出多个应用

  • 各个应用独立部署

  • 每个应用拥有独立的DB

  • 每个系统拥有独立域名


垂直应用架构-面临的问题

  • 虽然按照业务线拆分系统,单拆分粒度过大,业务耦合依然严重

  • 不同应用依然访问一个DB的情况,数据表拆分不彻底

  • 业务团队各自为战,重复造轮子,浪费开发资源

  • 多个业务系统边界不清晰


微服务架构-电商服务化架构

订单服务化:

原来的拆分粒度是比较大的,所以我们再次细分。分为订单售前和售后的服务。

订单的售前基础服务就是订单的CRUD,需要在他的上层做一次聚合,为订单的售前服务等。

......

订单服务化-举例取消订单服务交互:

取消订单的思考:
取消订单的流程大概是:先去查询订单,那就要去订单服务查询,订单里面有商品的信息,需要涉及到我们的商品服务,里面还可能有细分品牌服务、品类服务(spu、sku),然后去验证一些规则是否可以取消。同时取消订单的时候,去营销服务返还优惠券的信息,占用的库存也需要去回滚,一系列的工作完之后,进入退款流程,则是去支付服务走退款流程。(线头颜色代表不同的服务去向)

原文作者:二进制跳动;如有侵权,请联系管理员删除。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2022-07-08

  • 博文量
    312
  • 访问量
    141081