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

news/2024/7/27 10:58:59/文章来源:https://blog.csdn.net/weixin_45188218/article/details/136444223

​​​​​​​​在这里插入图片描述

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

(见表 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并没有规定服务的大小或粒度,因此可以包括各种不同类型的服务,从较大的服务到微小的服务。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_999548.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Selenium】UI自动化|元素定位常见问题

1、报错NoSuchElementException——定位不到元素 分析的可能原因: 页面还没有加载出来,就对页面上的元素进行的操作 元素在iframe中,先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一…

RabbitMQ篇

1.初始MQ 1.1. 同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应,…

Neo4j 新手教程 环境安装 基础增删改查 python链接 常用操作 纯新手向

Neo4j安装教程🚀 目前在学习知识图谱的相关内容,在图数据库中最有名的就是Neo4j,为了降低入门难度,不被网上很多华丽呼哨的Cypher命令吓退,故分享出该文档,为自己手动总结,包括安装环境,增删改查…

程序员失业,被迫开启 PlanB——成为自由职业/独立开发者的第 0 天

程序员失业,被迫开启 PlanB——成为自由职业/独立开发者的第 0 天 今天在逛V2EX的时候看到的一个帖子,程序员中年被裁,被迫开启独立开发这条路。 原贴如下: lastday, 失业啦 公司年前通知我合同到期不续签,今天是我…

python爬虫(3)

上一次的代码结果如下: 当然会有一点点不一样是正常的表现,因为这个图本身使用随机数rand函数做的,用其他两种随机函数出来的结果也不会完全相同。 继上节这次带来的是数组的重塑和转置 1、一维数组的重塑 在NumPy模块中的reshape()函数可…

redis缓存(穿透, 雪崩, 击穿, 数据不一致, 数据并发竞争 ), 分布式锁(watch乐观锁, setnx, redission)

redis的watch缓存机制 WATCH 机制原理: WATCH 机制:使用 WATCH 监视一个或多个 key , 跟踪 key 的 value 修改情况,如果有key 的 value 值在事务 EXEC 执行之前被修改了,整个事务被取消。EXEC 返回提示信息,表示 事务已…

【开源】JAVA+Vue.js实现高校宿舍调配管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能需求2.1 学生端2.2 宿管2.3 老师端 三、系统展示四、核心代码4.1 查询单条个人习惯4.2 查询我的室友4.3 查询宿舍4.4 查询指定性别全部宿舍4.5 初次分配宿舍 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的…

AlibabaCloud微服务:Linux 部署 Sentinel 流量控制

目录 一、实验 1.环境 2.Linux 部署 Sentinel 3. 微服务接入Sentinel配置 二、 问题 1.Linux本地启动Sentinel控制台 2.JDBC连接失败 一、实验 1.环境 (1)主机 表1 主机 系统软件版本IP备注Linuxopenjdk 1.8.0192.168.204.200 maven3.5.0nac…

go 程序被意外kill后出现僵尸进程解决方案

go 管理自身子进程(防止僵尸进程出现) 写这篇文章是因为最近有同事竟然会知道异步启动子进程,不会关闭,最后导致导致僵尸进程出现,而且由于子进程会随着业务的使用越开越多,主进程一旦被kill掉就会不得不手动一个一个kill。 大概…

pytest 教程

1. 安装pytest 目前我使用的python版本是3.10.8 pip install pytest命令会安装下面的包: exceptiongroup-1.2.0-py3-none-any.whl iniconfig-2.0.0-py3-none-any.whl packaging-23.2-py3-none-any.whl pluggy-1.4.0-py3-none-any.whl pytest-8.0.2-py3-none-any.…

2024阿里云服务器ECS u1实例性能测评,CPU内存、网络和存储

阿里云服务器u1是通用算力型云服务器,CPU采用2.5 GHz主频的Intel(R) Xeon(R) Platinum处理器,通用算力型u1云服务器不适用于游戏和高频交易等需要极致性能的应用场景及对业务性能一致性有强诉求的应用场景(比如业务HA场景主备机需要性能一致)&#xff0c…

JavaWeb - 3 - JavaScript(JS)

JavaScript(JS)官方参考文档:JavaScript 教程 JavaScript(简称:JS)是一门跨平台、面向对象的脚本语言,是用来控制网页行为的,它能使网页可交互(脚本语言就不需要编译,直接通过浏览器…

基于Spring Boot+ Vue的房屋租赁系统

末尾获取源码作者介绍:大家好,我是墨韵,本人4年开发经验,专注定制项目开发 更多项目:CSDN主页YAML墨韵 学如逆水行舟,不进则退。学习如赶路,不能慢一步。 目录 一、项目简介 二、开发技术与环…

算法学习01:排序二分

算法学习01:排序&&二分 文章目录 算法学习01:排序&&二分前言需要记忆的模版:快速排序归并排序:整数二分:浮点数二分 一、排序1.快速排序2.归并排序: 二、二分1.整数2.浮点数 总结 前言 需要…

动态规划(算法竞赛、蓝桥杯)--树形DP积蓄程度

1、B站视频链接&#xff1a;E35 树形DP 积蓄程度_哔哩哔哩_bilibili #include <bits/stdc.h> using namespace std; const int N200010,INF0x3f3f3f3f; int h[N],to[N*2],w[N*2],ne[N*2],tot; //邻接表 int d[N]; //d[i]记录从i点向下流出的最大流量 int f[N]; //f…

Linux Ubuntu 部署SVN

最近需要在ubuntu server上部署一个svn&#xff0c;记录 不需要特定版本 如果不需要特定版本&#xff0c;这样安装就是最简单的 sudo apt update然后开始安装 sudo apt install subversion等到安装完成之后执行查看版本命令&#xff0c;如果正常输出那就没问题了 svnadmin …

给一篇word注音可不可以只要拼音不要汉字 word中如何只保留拼音不要汉字

word中如何只保留拼音不要汉字&#xff0c;如果你想要只保留拼音而去除汉字&#xff0c;可以通过一系列步骤来实现。以下是一个详细的教程&#xff0c;帮助你完成这个任务。 首先&#xff0c;确保你的电脑已经安装了“汇帮注音大师”软件。如果没有&#xff0c;你需要安装一下…

基于单片机的商品RFID射频安全防盗报警系统设计

目 录 摘 要 I Abstract II 引 言 1 1 系统方案设计 3 1.1 总体设计要求 3 1.2 总体设计方案选择 3 1.3 总体控制方案选择 4 1.4 系统总体设计 5 2 项目硬件设计 7 2.1 单片机控制设计 7 2.2 按键电路设计 10 2.3 蜂鸣器报警电路设计 10 2.4 液晶显示电路设计 11 2.5 射频识别…

HTML—基本介绍

HTML是一种超文本标记语言(HyperText Markup Language)&#xff0c;用于创建网页的标记语言超文本&#xff1a;是指页面内可以包含图片、链接、声音、视频等内容标记&#xff1a;HTML富含大量的标签供程序员使用&#xff0c;通过标记符号来规定指定内容的样式 浏览器最终根据不…

FPGA 按键控制串口发送

按键消抖 消抖时间一般为10ms&#xff0c;我使用的板子是ACX720&#xff0c;晶振为50MHZ&#xff0c;20ns为一周期。 状态机 模块设计 设计文件 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2023/01/11 12:18:36 // Design Name: // Module Name…