文章目录

  • 单体应用架构
  • 垂直应用架构
  • 分布式架构
  • SOA架构
  • 微服务架构
  • SOA架构&微服务架构对比
  • 分布式应用开发解决方案

随着互联网的发展,网站的应用也不断扩大,从而导致系统架构不断的进行变化,从互联网早起到现在,系统架构大致经历了下面几个过程。

单体应用架构

所有功能都集中在一个应用中,统一开发、部署、维护。

  • 优点:开发成本、部署成本、维护成本低
  • 缺点:对于大型项目来说,项目模块紧密耦合、单点容错率低、无法针对某一个模块优化和水平扩展。

垂直应用架构

将之前的单体应用拆分成多个应用,提升效率。比如,电商系统可以拆分成电商系统、后台系统等。

  • 优点:项目拆分实现流量分担,解决并发问题,可以针对某一个模块优化和水平扩展,同时应用之间不会相互影响,提高容错率。
  • 缺点:应用相互存在又是独立的,对于相同的功能会造成一定的冗余。

分布式架构

随着业务的增加,在垂直应用中的冗余代码会越来越多。将冗余代码抽取出来单独的服务提供应用调用形成分布式架构。

  • 优点:抽取公共的功能作为服务层,提高代码复用。
  • 缺点:系统间耦合变高,调用关系错综复杂,难以维护。

SOA架构

分布式架构的缺点就是应用和服务之间调用复杂,难以维护,尤其是当服务节点越来越多的时候。SOA就是为了解决资源调度和治理的问题。

  • 优点:使用治理中心(ESB/Dubbo)解决服务间调用关系的自动调节。
  • 缺点:服务间有依赖关系,某一环节出现问题影响较大。

微服务架构

某种程度上SOA架构发展的下一步,微服务架构更加强调服务的拆分,每个服务独立部署互不影响,更加轻巧、轻量级。

  • 优点:服务独立打包部署和升级,功能划分清晰,利于扩展。
  • 缺点:成本高、复杂度高。

SOA架构&微服务架构对比

  • 微服务架构更加精细,专业的人做专业的事。
  • 微服务架构中,每个服务独立部署。
  • 微服务架构中,每个服务都是单独的数据库。
  • 微服务架构更加适合互联网敏捷开发、快速迭代版本。

分布式应用开发解决方案

Spring Cloud提供微服务开发的一站式解决方案,包含开发分布式应用微服务的必须组件,方便开发者通过Spring Cloud编程模型轻松开发分布式应用服务。目前Spring Cloud生态有Spring Cloud Netflix、Spring Cloud Alibaba两套框架。

互联网应用的架构演变之路相关推荐

  1. 阿里电商架构演变之路

    前言:从网上找的首届阿里中间件技术峰会上的一个报告,2017年7月的,报告的名字叫阿里电商架构演变之路,感觉不错所以看了一遍,在此记录一下,复制了其中大部分内容,并进行了整理,然后在晦涩之处用自己的语 ...

  2. Fabric架构演变之路

    Fabric架构演变之路 Hyperledger Fabric是目前主流的开源联盟链产品之一,自2016年5月12日开辟代码仓库之日起,已有快3年的时间了,产品趋于稳定,功能也越来越完善,正在适配不同 ...

  3. Fabric架构演变之路 1

    作者: TopJohn 原文连接:https://www.xuanzhangjiong.to... Fabric架构演变之路 Hyperledger Fabric是目前主流的开源联盟链产品之一,自20 ...

  4. 阿里云构建千万级别架构演变之路

    阿里云构建千万级别架构演变之路 摘要: 随着云计算的到来,当前已经从IT时代向DT时代开始转型.在云端如何构建千万级架构,本文主要结合阿里云最佳实践经验,向大家分享如何从一个小型网站逐步演变到千万级架 ...

  5. 企业的应用架构演变之路

    作者|杨堃编辑|Gary 企业应用架构是指一整套软件系统的构建,通过合理的划分和设计组合在一起,支持企业方方面面的经营运作.不论是传统企业,还是互联网公司,发展到一定阶段,都需要一整套体系化的应用架构 ...

  6. 分布式架构演变之路,微服务、限流、熔断....

    本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件.本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节. 要理解微服务,首先要先理解不是微服 ...

  7. 故事篇:数据库架构演变之路

    故事的开头总是这样,适逢其会.猝不及防.今天我哼着"也是黄昏的沙滩上,有着脚印两对半......"在海边散步,迎面走来了一位身穿黄金甲的男子,来海边还穿这么花哨,真是个傻X.定睛一 ...

  8. 大型互联网大型分布式架构演进之路

    来自:网络 编注: 架构决定的系统的稳定性,扩展性和并发性,架构的演进是从简单到复杂,从单一到复合持续改进的过程,也是经验的积累和技术的结晶. 初始阶段架构 初始阶段的小型系统.应用程序.数据库.文件 ...

  9. 阿里电商架构演变之路(一)

    前言 阿里应该是Java大户,之前对于阿里的技术并不是很熟悉,后来接触的多了,才觉得阿里电商领域做得有多大,背后的技术支撑也是令人眼花缭乱,既然做互联网之路,那么阿里的电商技术模式就是绕不开的,面苏宁 ...

最新文章

  1. CSDN 2022 届春季校园招聘火热启动!
  2. 如何编写与非贪婪匹配的正则表达式? [重复]
  3. U3D 飞机大战(MVC模式)解析--面向对象编程思想
  4. 操作系统:经典进程同步问题 之 生产者-消费者问题、读者-写者问题、哲学家进餐问题
  5. 【原】jQuery编写插件
  6. ①你真的学会Java了吗?来自《卷Ⅰ》的灵魂提问
  7. 远程无法连接数据库的问题
  8. 如何在Vim中进行不区分大小写的搜索
  9. TensorFlow基础篇(一)——tf.train.exponential_decay()
  10. Centos7 搭建 hadoop3.1.1 集群教程
  11. 去阿里面试被问:如果是MySQL引起的CPU消耗过大,你会如何优化?
  12. 2021最新银行卡bin码
  13. 一文读懂AB测试原理及样本量计算的Python实现
  14. 什么叫断章取义,什么叫曲解——你被骗了多少年?
  15. www-authenticate
  16. JQuery——添加CSS样式
  17. a3.ansible 生产实战案例 -- 系统初始化roles
  18. 计算机英语情景对话二人组,英语小对话二人组日常情景对话
  19. python节日贺卡图片_节日贺卡图片制作手工
  20. 人与人之间相处的原则

热门文章

  1. 文思海辉 墨尔本_团结墨尔本
  2. 2021级新生个人训练赛第40场
  3. linux Runtime
  4. 【转载】合约投放系统-介绍
  5. ES系列二之常见问题解决
  6. 百度链接提交入口小攻略
  7. 小米空气净化器滤芯RFID解密
  8. matlab nan 无色_科学网—Matlab 关于NaN值的填充 - 肖鑫的博文
  9. java心得体会_初学java之心得体会
  10. QT ODBC连接数据库读取中文乱码的一个解决方法