美文网首页
【架构】可扩展性

【架构】可扩展性

作者: 狼爷的号 | 来源:发表于2020-05-16 21:46 被阅读0次

What

可扩展性指系统为了应对将来需求变化而提供的一种扩展能力,当有新的需求出现时,系统不需要或者仅需要少量修改就可以支持,无须整个系统重构或者重建。

Why

伴随着业务的发展,能够快速响应业务变化,并最大程度降低对现有系统的影响,是设计可扩展性好架构的主要目的。

Theory

设计具备良好可扩展性的系统,有两个基本条件:正确预测变化、完美封装变化。

预测变化的复杂性

  • 不能每个设计点都考虑可扩展性
  • 不能完全不考虑可扩展性
  • 所有的预测都存在出错的可能性

How

业务维度

  • 对业务深入理解,对业务的发展方法进行预判

技术维度

  • 应对变化
    • 将“变化”封装在一个“变化层”,将不变的部分封装在一个独立的“稳定层”
    • 提炼出一个“抽象层”和一个“实现层”
  • 降低模块间的耦合度
    • 分布式服务框架
    • 分布式消息队列

可扩展的基本思想

拆,就是将原本大一统的系统拆分成多个规模小的部分,扩展时只修改其中一部分即可,无须整个系统到处都改,通过这种方式来减少改动范围,降低改动风险。

常见的拆分思路有如下三种

  • 面向流程拆分:将整个业务流程拆分为几个阶段,每个阶段作为一部分。
  • 面向服务拆分:将系统提供的服务拆分,每个服务作为一部分。
  • 面向功能拆分:将系统提供的功能拆分,每个功能作为一部分。

各种XX性比较

  • 可扩展性:代码完成之后,要在原来的基础上增加新功能,只需要添加添加该功能的代码,不需要或需要少量修改原来的代码,对之前的代码没有影响,这就是可扩展
  • 可维护性:指软件产品被修改的能力,修改包括纠正、改进或软件对环境、需求和功能规格说明变化的适应。代码完成之后,如果要修改部分功能,需要修改的地方很少,就是容易维护
  • 可复用性:代码完成之后,以后开发中可以复用部分代码,提高效率,就是复用性强
  • 灵活性:代码完成之后,使用的地方可以通过多种方式来调用该部分的代码,这就是灵活性好

相关文章

  • 如何实现可扩展性的大型网站架构

    如何实现可扩展性的大型网站架构 网站的可扩展性架构设计,能够在对现有系统影响最小的情况下,系统功能可以可持续扩展及...

  • 【架构】可扩展性

    What 可扩展性指系统为了应对将来需求变化而提供的一种扩展能力,当有新的需求出现时,系统不需要或者仅需要少量修改...

  • Mysql在大型网站的应用架构演变

    本文主要描述在网站的不同的并发访问量级下,Mysql架构的演变 可扩展性架构的可扩展性往往和并发是息息相关,没有并...

  • 1、微服务基本概念

    一、传统的可扩展性架构之分层架构与SOA架构 1、分层架构 (1)概念 分层架构是很常见的架构模式,它也叫 N 层...

  • 架构师之路-微内核架构

    微内核架构也被称为插件化架构(plugin-in architecture),是一种面向功能进行拆分的可扩展性架构...

  • 架构的复杂度

    架构复杂度来自:高可用,高性能,可扩展性,安全,低成本等要求

  • 大型网站技术架构——7. 网站的可扩展架构

    [TOC] 7. 网站的可扩展架构 网站的扩展性架构设计:在对现有系统影响最小的情况下,系统功能可持续扩展及提升的...

  • 系统架构之高可扩展系统设计与实现

    可扩展性是衡量架构设计的一个因素,也经常被开发者提到。但是,一个系统要设计出比较好的可扩展性是有一定难度的,而且可...

  • 系统架构之高可扩展系统设计与实现

    可扩展性是衡量架构设计的一个因素,也经常被开发者提到。但是,一个系统要设计出比较好的可扩展性是有一定难度的,而且可...

  • 软件架构的重要性

    架构者,骨骼也。架构好,则生命力强,可扩展性强,可维护性高。正所谓根深苗正。 一个应用的底层架构不扎实,不...

网友评论

      本文标题:【架构】可扩展性

      本文链接:https://www.haomeiwen.com/subject/lxhdohtx.html