由于现在设计的开发项目都很小,突然有人开始问这个问题以及系统负载的问题还真答不出来!花了点时间整理了下,给哪些一瓶子不满半瓶子晃的伙伴准备,用来堵哪些看过几张ppt就到处胡说八道人的嘴。





构架划分
系统架构是对系统整体结构、组件、模块、接口以及它们之间关系的描述和设计,它就像是建筑的蓝图,指导着系统的开发、部署和演进。
•单体架构
•特点:将系统的所有功能都集成在一个单一的应用程序中,就像一个大而全的盒子,所有的业务逻辑、数据处理等都在这个盒子里完成。
•适用场景:小型项目或对功能复杂度、扩展性要求不高的系统,如一些简单的企业内部管理系统。
•微服务架构
•特点:把系统拆分成多个小型的、独立运行的微服务,每个微服务都有自己独立的数据库、业务逻辑和接口,它们之间通过轻量级的通信机制进行交互,就像一群各自独立又相互协作的小团队。
•适用场景:大型的、复杂的、对扩展性和灵活性要求高的系统,如大型电商平台、综合性社交媒体平台等。
•分布式架构
•特点:将系统的功能和数据分布在多个节点上,这些节点可以位于不同的地理位置,通过网络进行通信和协作,共同完成系统的任务,如同多个分散的力量共同完成一项大工程。
•适用场景:对处理能力、存储能力要求极高,需要应对高并发、海量数据的系统,如大型搜索引擎、金融交易系统等。
特点
单体架构
易于开发和部署:整个系统作为一个整体进行开发、测试和部署,流程相对简单,开发人员可以在一个项目中集中处理所有业务逻辑,部署时只需将整个应用程序部署到服务器上。
易于理解和维护(初期):在系统规模较小、业务逻辑不复杂时,代码结构相对清晰,开发和维护人员能够较容易地掌握整个系统的运行机制。
性能优化困难:随着业务功能的不断增加,单体应用会变得越来越庞大,各个模块之间的耦合度高,对某个功能进行性能优化可能会影响到其他功能,优化难度大。
可靠性较低:一旦单体应用中的某个部分出现故障,可能会导致整个系统崩溃,影响所有功能的正常使用。
微服务架构
高可扩展性:每个微服务可以独立扩展,根据不同微服务的负载需求,灵活地增加或减少资源,能够很好地应对业务的快速增长和变化。
技术多样性:不同的微服务可以根据其具体业务需求,选择最合适的技术栈进行开发,充分发挥各种技术的优势。
独立部署和运维:各个微服务可以独立进行部署、升级和运维,不会因为一个微服务的问题而影响其他微服务的正常运行,提高了系统的稳定性和可维护性。
分布式事务处理复杂:由于数据可能分布在多个微服务的数据库中,在涉及多个微服务的数据操作时,保证数据的一致性会变得比较复杂,需要采用分布式事务处理机制。
分布式架构
处理海量数据和高并发:通过将数据和任务分布到多个节点上并行处理,能够处理海量的数据和高并发的请求,提供强大的计算和存储能力。
高可靠性和容错性:系统中的多个节点可以互为备份,当部分节点出现故障时,其他节点可以继续提供服务,保证系统的可用性和数据的完整性。
网络依赖和延迟问题:由于节点之间通过网络进行通信,网络的稳定性和延迟会对系统性能产生影响,需要在设计时充分考虑网络因素,采取相应的优化措施。
架构复杂性高:涉及到数据分布、任务调度、节点通信等多个复杂的技术环节,设计和实现难度大,运维成本也较高。
应用案例
•单体架构
•小型电商网站:在业务初期,用户量和订单量都较少,功能相对简单,如只包含商品展示、下单、支付等基本功能,采用单体架构可以快速开发和上线,满足业务需求。
•企业内部管理系统:如小型企业的办公自动化系统,主要用于员工的考勤、请假、文件管理等日常办公功能,业务逻辑不复杂,单体架构易于开发、维护和管理。
•微服务架构
•大型互联网公司的业务系统:例如美团、饿了么等外卖平台,包含订单管理、商家管理、用户管理、配送管理等多个复杂的业务模块,每个模块都有不同的业务需求和扩展方向,采用微服务架构可以让各个团队独立开发、部署和维护,提高开发效率和系统的可扩展性。
•综合性社交媒体平台:如微博、抖音等,有内容发布、社交互动、推荐系统、广告投放等多种功能,不同功能可以拆分成微服务,方便进行个性化的功能优化和业务拓展。
•分布式架构
•大型搜索引擎:如百度、谷歌等,需要处理海量的网页数据和用户的高并发搜索请求,通过分布式架构将数据存储在多个服务器上,并进行分布式计算和索引,以提供快速、准确的搜索服务。
•金融交易系统:如证券交易系统、银行核心业务系统等,对数据的一致性、可靠性和处理速度要求极高,分布式架构可以保证在高并发交易情况下系统的稳定运行,实现数据的实时备份和恢复,确保交易的安全和准确。
发展关系
微服务与分布式是根据自身业务发展需要而演化出的构架形态,两种形式也在逐步相互融合。并且随着技术的发展逐步在产生新的构架形态。技术高速发展没必要为追赶技术而增加技术成本,而是根据自身的业务需要逐步完善。
技术为业务服务。确立业务的形态、模式、场景才能确认如何让技术的更好的支撑、服务于业务。
简单的说就是我需要做这个生意,需要有这个平台。不是为了做这个平台才有这个生意。