从单体架构到分布式架构的演变--新手向

简介: 单体架构到分布式架构更多的是从项目的系统架构层面进行的讨论,故不要将单体架构与业务分层(如mapper、dao、controller……)相混淆本文将以一个简单的商城项目为导引,讲解单体架构与分布式架构项目包含了订单模块、用户模块、支付模块和商品模块等

前言

注:单体架构到分布式架构更多的是从项目的系统架构层面进行的讨论,故不要将单体架构与业务分层(如mapper、dao、controller……)相混淆

本文将以一个简单的商城项目为导引,讲解单体架构与分布式架构

项目包含了订单模块、用户模块、支付模块和商品模块等

单体架构

什么是单体架构?

简单来说就是把业务的所有功能集中在一个项目中去开发,打成一个包部署

在开发单体架构项目时,只需要创建一个项目,然后根据相应功能不断在项目各业务层中堆积代码就 OK 了,不需要考虑复杂的架构设计。在大多数初学者初学web后端时所做的demo大多数都是单体架构

单体架构的优点是架构简单、部署成本低(把项目打成包部署到tomcat上,用户就可以访问了,当用户增加后,可以通过加机器形成负载均衡的集群),

劣势

随着程序的不断迭代,程序复杂度会越来越高,业务模块越来越多,在开发的过程中,这些个代码你中有我,我中有你,它们之间的边界也越来越模糊,将来你改了一个地方的代码,可能会导致其他几个模块代码都跟着受到影响,所以单体架构并不利于大型项目开发,此时分布式架构应运而生

分布式架构

所谓分布式架构,会根据业务功能对系统做拆分,每个业务模块作为独立项目去开发,称为服务

比方说这个商城,它里边有四个业务模块,那我就会按照业务拆分,拆成四个独立的项目,然后来用户访问时,根据需要访问相应模块。

分布式架构项目由于需要考虑复杂的架构设计、对服务(模块)的大量拆分,会较大增加维护成本,故多用于企业级大型项目的开发

微服务

微服务本质上就是一种分布式架构方案,只不过是人们在设计分布式过程中踩坑,各种总结经验,得到了一种最佳实践

特征

  • 单一职责服务拆分力度要小,服务要干自己该干的事情,不能像打工人一样大包大揽,以避免重复开发
  • 面向服务:不同的服务间要实现相互通信获取数据等,故服务要对外暴露业务接口
  • 自治,自治其实就是独立,我们的各个服务要做到、技术独立、数据独立和部署独立,这样才能尽可能的对数据、程序进行解耦。值得注意的是:服务独立需要做到隔离性,以避免其他服务宕机导致的级联问题

最终的目的就是为了实现高内聚耦合,降低服务之间的影响,或者说降低服务它所能产生影响的范围,避免整个集群的故障

总结

  • 单体架构:适合于简单、小型项目
    • 优点:架构简单,部署方便
    • 缺点:耦合度高
  • 分布式架构:适合大型企业级项目
    • 优点:降低耦合
    • 缺点:相较于单体项目,架构复杂
    • 最佳实践:微服务--单一职责、面向服务、独立自治

参考资料

https://www.bilibili.com/video/BV1LQ4y127n4?p=4

目录
相关文章
|
2月前
|
监控 负载均衡 Dubbo
|
29天前
|
设计模式 安全 Java
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
33 0
|
6天前
|
存储 关系型数据库 分布式数据库
电子好书发您分享《PolarDB分布式版架构介绍PolarDB分布式版架构介绍》
**《PolarDB分布式版架构介绍》电子书分享:** 探索阿里云PolarDB分布式设计,采用计算存储分离,借助GMS、CN组件实现大规模扩展。[阅读更多](https://developer.aliyun.com/ebook/8332/116553?spm=a2c6h.26392459.ebook-detail.5.3b3b2ccbVVjjt0)
14 3
|
29天前
|
NoSQL Java Redis
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件(二)
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件
15 0
|
4天前
|
关系型数据库 分布式数据库 数据库
电子好书发您分享《PolarDB分布式版架构介绍》
阅读阿里云电子书《PolarDB分布式版架构介绍》,深入理解这款高性能数据库的分布式架构设计。书中通过图文并茂的方式揭示了PolarDB在分布式场景下的核心特性和技术优势,适合数据库爱好者和云计算从业者学习。[阅读链接](https://developer.aliyun.com/ebook/8332/116553?spm=a2c6h.26392459.ebook-detail.5.4ab72ccbIzDq2Q)
|
5天前
|
存储 SQL 关系型数据库
电子好书发您分享《PolarDB分布式版架构介绍》
**PolarDB分布式版详解:** 阿里云的PolarDB采用计算存储分离架构,利用GMS进行元数据管理,CN处理分布式SQL。结合PolarFS,实现高效存储与计算,支持大规模扩展。[阅读完整架构介绍](https://developer.aliyun.com/ebook/8332/116553?spm=a2c6h.26392459.ebook-detail.5.5b912ccbE20nqg)
|
7天前
|
存储 关系型数据库 分布式数据库
电子好书发您分享《PolarDB分布式版架构介绍》
**探索PolarDB分布式版:阿里巴巴云的高扩展数据库解决方案,采用计算存储分离架构,确保高性能和弹性扩展。[阅读详情](https://developer.aliyun.com/ebook/8332/116553?spm=a2c6h.26392459.ebook-detail.5.33ac2ccbVd9TB2)**
92 7
|
29天前
|
存储 监控 安全
金石推荐 | 【分布式技术专题】「单点登录技术架构」一文带领你好好认识以下Saml协议的运作机制和流程模式
金石推荐 | 【分布式技术专题】「单点登录技术架构」一文带领你好好认识以下Saml协议的运作机制和流程模式
64 1
|
29天前
|
存储 Java 应用服务中间件
【分布式技术专题】「架构实践于案例分析」盘点互联网应用服务中常用分布式事务(刚性事务和柔性事务)的原理和方案
【分布式技术专题】「架构实践于案例分析」盘点互联网应用服务中常用分布式事务(刚性事务和柔性事务)的原理和方案
52 0