如何进行有效的系统拆分?

条件:用户数是否大  交易数是否大  系统性能是否遇到瓶颈 
对于目前来说大而全的系统已经是存在各种问题了。
比如用户数和交易数的剧增,会带来多线程和高并发的业务问题甚至代码问题。
再比如:系统性能在面对小用户数并发时依然低下的问题。

因此我们就需要对我们的架构或者业务进行拆分。
拆分是立马着手的吗?no,不是的。这需要我们在一些中小型企业或者一些更复杂的一些大平台比如像银行的一些系统
中需要有一个循序渐进的处理方式。
那么怎么做系统拆分前的准备工作呢?
1. 指定维度划分
   A. 应用系统维度  最顶层的应用架构设计和拆分  
   将一个电商拆分:
   SSO系统 权限系统 买家系统 卖家系统 商品系统 价格系统 购物车系统 促销系统  订单系统 
   库存系统  支付系统 发票系统 店铺系统 分账系统 合同系统
   评价系统  采购系统  物流系统  售后系统  采购系统  财务系统等等
   
   B. 业务功能维度  
   a.将一个优惠券系统拆分:
   后台制券系统 发券系统 领券系统 用券系统 核券-失效系统
   
   b.将一个商品系统拆分:
   商品详情系统  CDN渲染详情页系统等
   
   C. IO流向维度
   读大于写:商品读服务(缓存) 商品写服务(mycat分库分表) 
   聚合读取:抽取聚合进行异构存储

   D. 日志审计维度
   将通用日志拆分:用户操作日志 终端操作日志 资源操作日志 违规接入日志 等等   
   
   E. 模块层级维度 
   按照层级划分:数据库分库分表 数据库连接池管理 DAO层 dubbo接口软负载服务
   Service层:业务服务  web层:控制层服务
   
2. 根据指定的维度-梳理业务闭环-成立预演推进
    A. 梳理需要拆分系统的业务闭环
    B. 根据业务闭环拆分出核心业务和非核心业务
    C. 根据核心业务进行并拢,非核心业务进行边缘化站角
    D. 专项成立预演推进小组 m组预演推进  n组进行原业务处理。
3. 开始出方案:
    保证当前问题 有方案
    系统拆分     有预案

笔者日前在一家公司担任架构师岗位,进入公司发现公司的优惠券系统
很杂乱无章,还好公司的用户数规模很小。
因此在极短的时间内对其做了系统拆分。

原优惠券系统:系统优惠券用户优惠券订单优惠券 制券 发券 领券 使用 核销 失效的业务都在一个服务中。
在维护和成本上比较复杂。

因此笔者开始着手进行处理,好在后面的业务推进只是用到了订单优惠券
因此笔者开启了拆分:原先类型的划分 不作处理。不采用横向拆分。
将优惠券划分为:(由于用户数小,未进行系统拆分,只是做了现有系统和优惠券系统的分离 +接口服务拆分)
A. 将优惠券系统拆分出去
B. 将优惠券系统的核心接口服务抽取封装如下:
    制券服务 -提供统一的接口对外服务
    发券服务 -提供统一的接口对外服务
    领券服务 -提供统一的接口对外服务
    用券服务 -提供统一的接口对外服务 
    核券服务 -提供统一的接口对外服务
C. 后续开发预演推进在新的优惠券系统上进行。
D. 删除原有的优惠券服务相关代码和业务逻辑。
E. 配置中心添加更改响应的地址。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值