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

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

前言

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

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

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

单体架构

什么是单体架构?

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

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

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

劣势

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

分布式架构

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

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

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

微服务

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

特征

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

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

总结

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

参考资料

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

目录
相关文章
|
6天前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
32 6
|
6天前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
19 1
|
1月前
|
Cloud Native Java API
聊聊从单体到微服务架构服务演化过程
本文介绍了从单体应用到微服务再到云原生架构的演进过程。单体应用虽易于搭建和部署,但难以局部更新;面向服务架构(SOA)通过模块化和服务总线提升了组件复用性和分布式部署能力;微服务则进一步实现了服务的独立开发与部署,提高了灵活性;云原生架构则利用容器化、微服务和自动化工具,实现了应用在动态环境中的弹性扩展与高效管理。这一演进体现了软件架构向着更灵活、更高效的方向发展。
|
2月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
2月前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
2天前
|
Dubbo Java 应用服务中间件
服务架构的演进:从单体到微服务的探索之旅
随着企业业务的不断拓展和复杂度的提升,对软件系统架构的要求也日益严苛。传统的架构模式在应对现代业务场景时逐渐暴露出诸多局限性,于是服务架构开启了持续演变之路。从单体架构的简易便捷,到分布式架构的模块化解耦,再到微服务架构的精细化管理,企业对技术的选择变得至关重要,尤其是 Spring Cloud 和 Dubbo 等微服务技术的对比和应用,直接影响着项目的成败。 本篇文章会从服务架构的演进开始分析,探索从单体项目到微服务项目的演变过程。然后也会对目前常见的微服务技术进行对比,找到目前市面上所常用的技术给大家进行讲解。
11 1
服务架构的演进:从单体到微服务的探索之旅
|
21天前
|
运维 供应链 安全
SD-WAN分布式组网:构建高效、灵活的企业网络架构
本文介绍了SD-WAN(软件定义广域网)在企业分布式组网中的应用,强调其智能化流量管理、简化的网络部署、弹性扩展能力和增强的安全性等核心优势,以及在跨国企业、多云环境、零售连锁和制造业中的典型应用场景。通过合理设计网络架构、选择合适的网络连接类型、优化应用流量优先级和定期评估网络性能等最佳实践,SD-WAN助力企业实现高效、稳定的业务连接,加速数字化转型。
SD-WAN分布式组网:构建高效、灵活的企业网络架构
|
26天前
|
消息中间件 关系型数据库 Java
‘分布式事务‘ 圣经:从入门到精通,架构师尼恩最新、最全详解 (50+图文4万字全面总结 )
本文 是 基于尼恩之前写的一篇 分布式事务的文章 升级而来 , 尼恩之前写的 分布式事务的文章, 在全网阅读量 100万次以上 , 被很多培训机构 作为 顶级教程。 此文修改了 老版本的 一个大bug , 大家不要再看老版本啦。
|
30天前
|
存储 安全 API
单元化架构,分布式系统的新王!
【10月更文挑战第9天】
105 0
单元化架构,分布式系统的新王!
|
1月前
|
负载均衡 API 持续交付
深入探索微服务架构的演变与实践
【10月更文挑战第5天】 在当今软件开发领域,微服务架构以其独特的优势,如解耦、灵活性和可扩展性,已成为构建现代应用的首选方法。本文将全面解析微服务的核心概念、发展历程及其在实际应用中的最佳实践,帮助读者深入理解并有效实施微服务架构。
31 3