系统拆分和微服务化

导读:本篇文章讲解 系统拆分和微服务化,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

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

二 如何对系统进行拆分

三 系统拆分实践


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

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

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

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

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

二 如何对系统进行拆分

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

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 负责系统复杂查询。

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/9614.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!