分布式架构演进(个人学习用)
分布式架构演进(个人学习用)
单体架构
什么是单体架构?单体架构的特点
所有业务功能,系统架构等等都在一个应用中
使用同一种语言和 框架开发
开发、测试、部署以项目为单位
单体架构的局限性
业务功能越来越多的时候,单体应用的体量会变的越来越大,从而导致维护、迭代的难度增加,当单体应用的体量大到一定程度的时候,便会出现无法继续维护、更新的局面。
分布式架构之SOA阶段
什么是SOA?
SOA 即 Service Oriented Architure,面向服务的架构。SOA架构旨在将大体量的应用拆分成多个小体量应用,每个应用负责各自的业务模块,应用与应用之间相互协调通信,形成了分布式的架构。这种小体量应用被称之为服务
SOA相较于单体架构的优势
SOA架构将大体量应用拆分成为一个个的服务,极大程度的解决了单体应用随着业务功能的增多而变得难以维护的窘境
分布式架构之MSA(微服务)阶段
SOA到MSA的转变
服务仍然较大,进一步拆分粒度更小的微服务,MicroService
微服务架构风格
微服务架构风格这种开发方法,是以开发一组小型服务的方式来开发一个独立的应用系统。其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来相互通信。这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。这些微服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。对这些微服务,我们仅做最低限度的集中管理。
世界级软件架构大师 Martin Fowler
总结
分布式系统的优劣
优势:
• 将巨大的单体应用拆分成多个服务,整个应用的复杂性被分摊到多个服务
• 每个服务可以独立开发,选用不同的技术实现,发挥各种技术的特长
• 部署效率高,每个服务独立部署,不需要部署整个应用,持续部署成为可能
• 每个服务可以独立扩展(增加服务器),针对不同服务的不同压力可以*选择扩展
劣势:
• 作为分布式系统,显然会增加额外的复杂性。比如网络需要保证通畅;需要额外的通信失败处理等等
• 测试也随着复杂度增加,测试某个应用需要额外开启多个相关应用
• 某个服务的问题仍然会影响到其他服务,服务的调整需要仔细评估
• 部署的复杂度增加,微服务架构本身是将应用拆分成服务,每个服务是一个独立系统,需要独立配置数据库等基础设施,部署工作量成倍增加,所以需要高度运维自动化
本文地址:https://blog.csdn.net/weixin_44323255/article/details/109633229
上一篇: MySQL的架构介绍
下一篇: Wasp XT合成器功能介绍