【架构】五大常见架构模式,集中式架构、分布式架构、面向服务的系统架构、微服务架构等区别详解

​​​​​​​​

一、传统上,信息系统体系架构有三种常见模式

(见表 4-3):

  • ①、集中式架构。集中式架构下所有内容采用集中建设、支持和管理的模式,其主体系统通常部署千数据中心,以消除管理物理分离的基础设施带来的困难。

    在集中式架构中,所有的计算资源和数据存储都集中在一个地方。通常有一个中心服务器或者主数据库,所有的客户端应用程序都连接到这个中心服务器来获取数据或者执行计算任务。这种模式简单、易于管理,但是存在单点故障的风险,当中心服务器发生故障时,整个系统将不可用。

  • ②、分布式架构。硬件、软件、网络和数据的部署方式是在多台小型计算机、服务器和设备之间分配处理能力和应用功能,这些设施严重依赖千网络将它们连接在一起。

    分布式架构将计算资源和数据存储分散在多个地方 。系统由多个独立的节点组成,这些节点可以在不同的物理位置上,通过网络进行通信和协作。分布式架构具有高可用性和容错性,因为没有单点故障,即使某些节点发生故障,系统仍然可以继续运行。分布式架构通常用于大规模的互联网应用程序和云计算环境中。

  • ③、面向服务的系统架构 (Service-Oriented Architecture, SOA) SOA 架构中使用的软件通常被引向软件即服务 (Software-as-a-Service, Saas) 的相关架构,同时,这些应用程序在通过互联网交付时也被称为 Web 服务。

二、其他常见模式

  1. 客户端-服务器模式(Client-Server):

    在这种模式下,系统由两个主要组件组成:客户端和服务器。客户端负责向用户提供界面和交互功能,而服务器则负责存储数据和执行应用程序逻辑。客户端和服务器之间通过网络进行通信。这种模式通常用于企业级应用程序和Web应用程序。

    一个常见的例子是电子邮件系统。在这个系统中,用户使用电子邮件客户端(如Outlook、Gmail等)作为客户端,通过网络连接到电子邮件服务器,发送和接收电子邮件。服务器负责存储用户的电子邮件,并在需要时向客户端提供访问。这种模式允许用户通过客户端与服务器进行通信,而无需了解服务器的内部工作原理。

  2. 微服务架构模式(Microservices Architecture):

    微服务架构将应用程序拆分为一组小型、自治的服务,每个服务都专注于一个特定的业务功能。这些服务可以独立部署、扩展和更新,从而提高了系统的灵活性和可维护性。微服务架构通常与容器化技术(如Docker)和服务发现工具(如Kubernetes)结合使用,以简化部署和管理。

    在线社交网络为例。在这个系统中,可以将不同的功能拆分为微服务,如用户管理服务、帖子服务、评论服务等。每个微服务都可以独立部署、扩展和更新,从而提高了系统的灵活性和可维护性。例如,如果需要对评论功能进行更新,只需更新评论服务,而不会影响其他服务的运行。

三、微服务模式和分布式模式区别

  • 微服务架构:微服务解决的是系统复杂度 问题:一般来说是业务问题,即在一个系统中承担职责太多了,需要打散,便于理解和维护,进而提升系统的开发效率和运行效率,微服务一般来说是针对应用层面的。微服务如果用在其它系统,如存储系统感觉怪怪的,就像说Mysql集群是微服务的,总觉得哪里不舒服。
  • 分布式架构:分布式解决的是系统性能 问题: 即解决系统部署上单点的问题,尽量让组成系统的子系统分散在不同的机器上进而提高系统的吞吐能力。强调一个物理上分布的概念。

四、微服务架构可以看作是面向服务架构的一种实现方式

微服务架构模式(Microservices Architecture)和面向服务的架构模式(Service-Oriented Architecture,SOA)有一些相似之处,但它们并不完全相同。

微服务架构模式是一种更加细粒度的服务架构,它将应用程序拆分为一组小型、自治的服务,每个服务都专注于一个特定的业务功能。这些服务可以独立部署、扩展和更新,从而提高了系统的灵活性和可维护性。微服务架构通常与容器化技术(如Docker)和服务发现工具(如Kubernetes)结合使用,以简化部署和管理。

而面向服务的架构(SOA)是一种更宽泛的概念,它强调将应用程序的功能分解为可重用的服务,这些服务可以通过网络进行交互。每个服务都是独立的、自包含的单元,可以通过标准化的接口进行访问。SOA并没有规定服务的大小或粒度,因此可以包括各种不同类型的服务,从较大的服务到微小的服务。

因此,微服务架构可以看作是面向服务架构的一种实现方式,它强调了更小、更自治的服务单元,并且通常与现代的云原生技术结合使用,以支持敏捷开发和部署。

相关推荐
楚疏笃20 分钟前
鸿蒙学习自由流转与分布式运行环境-跨端迁移(2)
分布式·学习·harmonyos
Allen Bright1 小时前
Redis主从架构
数据库·redis·架构
ZOMI酱1 小时前
【AI系统】昇腾 AI 架构介绍
人工智能·架构
SuperherRo1 小时前
基础入门-Web应用&架构搭建&域名源码&站库分离&MVC模型&解析受限&对应路径
架构·源码·域名·web·解析·路径
哼了个哈2 小时前
daos源码编译
分布式
Lostgreen2 小时前
分布式查询处理优化之数据分片
大数据·笔记·分布式
孙克旭_4 小时前
第五章 RabbitMQ高级
分布式·rabbitmq
京东云开发者4 小时前
Taro 鸿蒙技术内幕系列(三) - 多语言场景下的通用事件系统设计
架构
楚疏笃4 小时前
鸿蒙学习自由流转与分布式运行环境-价值与架构定义(1)
学习·架构·harmonyos
凡人的AI工具箱5 小时前
40分钟学 Go 语言高并发:Pipeline模式(一)
开发语言·后端·缓存·架构·golang