系统拆分和微服务化

目录

一 为什么需要进行系统拆分

二 如何对系统进行拆分

三 系统拆分实践


一 为什么需要进行系统拆分

       一个系统,在不断的迭代和发展过程中将变得越来越复杂。其中复杂主要体现在两方面:一方面是代码量的增加、一方面是系统功能的增加。

       那么当一个需求提出来之后,将可能出现牵一发而动全身的情况,也就是说,系统需要修改的地方太多,有些地方甚至需要推倒重来。由于改动的地方太多,需要验证和回归的功能越多,导致开发周期拉长,人员投入将增多,风险偏大。

       系统拆分之后能达到如下效果:      

  • 业务解耦,动静分离,快速迭代。
  • 解决可扩展性问题。
  • 有利于进行单点优化,构建更加稳定的系统。

二 如何对系统进行拆分

       一般来说将一个复杂系统按照拆分成多个小系统,一般有如下四种方式:

2.1 基于业务逻辑拆分

      比如一个复杂的电商系统可以拆分为商品系统、订单系统、支付系统、物流系统等。

2.2 基于可扩展性拆分

       将系统中业务模块按照稳定性排序,已经成熟或者改动不大的服务拆分为稳定系统,经常开发和迭代的系统拆分为迭代系统。稳定系统的粒度可以大些,迭代系统粒度可以小些。

2.3 基于可靠性拆分

       将系统中的业务模块按照优先级排序,将可靠性要求高的核心服务和可靠性要求低的非核心服务拆分开来,然后重点保证核心服务的高可用。

2.4 基于性能拆分

       基于性能拆分和基于可靠性拆分类似,将性能要求高或者性能压力大的模块拆分出来,避免性能压力大的服务影响其他服务。

三 系统拆分实践

       user-center 系统聚合的功能有登录、注册、忘记密码、鉴权、批量和复杂查询,复杂度较高。为了提高系统的稳定性,我们进行了系统拆分实践。

3.1 依据业务逻辑拆分原则

       我们将 user-center 拆分成账号中心和用户中心。

3.2 依据可靠性原则

       我们将 user-center 拆分成核心业务(PX级别)和非核心业务(非PX级别)。

3.3 依据性能拆分原则

       我们将 user-center 拆分成 uc-auth 和 uc-search。

  • uc-auth 负责鉴权,对 QPS 要求高,容易进行单点优化。
  • uc-search 负责系统复杂查询。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值