【初出江湖】大白话解释集中式、分布式、微服务的区别?

2024-09-02 05:28

本文主要是介绍【初出江湖】大白话解释集中式、分布式、微服务的区别?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录标题

  • 什么是集中式?
  • 什么是分布式?
    • 分布式系统的架构一般构成模块
    • 分布式的优点
    • 分布式的缺点
    • 什么是分布式集群?
  • 什么是微服务?
    • 微服务和分布式系统有什么主要区别?
    • 微服务架构与分布式系统在开发过程中有何不同?
    • 为什么选择微服务架构而不是传统的分布式系统?

什么是集中式?

所谓集中式计算系统,是指所有计算都由位于同一位置的单台计算机来执行。(集中式系统就是把所有的程序、功能都集中到一台主机上,从而往外提供服务的方式)。集中式和分布式系统的主要区别在于系统节点之间的通信模式。集中式系统的状态控制在中央节点内,客户端以定制方式访问此节点。集中式系统的各个节点都要访问此中央节点,因此可能会导致网络拥塞和速度缓慢集中式系统存在单点故障,而分布式系统则没有单点故障。左:集中式;右:分布式。
在这里插入图片描述
比如,我们主机的PC电脑,或者手机,我们把各种软件都安装在一台机子上,当我需要什么功能,我就从这台机子上去获取。再比如,我们在学生时代做的课程设计或者开发时的小应用,我们把Web服务器、数据库等都会安装到一台电脑上。好处是,易于理解、方便维护,想要的东西我都放到了一个地方,东西好找啊。当然弊端也是显而易见的,如果这台机子崩了,或者硬盘坏了,那相当与整个系统就奔溃了,而且如果备份也是在这个硬盘上,那相当于招了灭顶之灾。

什么是分布式?

分布式系统由在网络上分散的多个计算单元组成的集合,这些单元利用跨多个独立计算单元的计算资源来实现共同的目标,以提供一种看似单一的协调服务。分布式系统旨在消除系统的瓶颈或中心故障点。广义上就是 分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。
在这里插入图片描述
狭义上,从进程角度看,两个程序分别运行在两个台主机的进程上,它们相互协作最终完成同一个服务(或者功能),那么理论上这两个程序所组成的系统,也可以称作是“分布式系统”。当然,这个两个程序可以是不同的程序,也可以是相同的程序。如果是相同的程序,我们又可以称之为“集群”。所谓集群,就是将相同的程序,通过不断横向扩展,以提高服务能力的方式。

毫无疑问,分布式系统对于集中式系统而言,在实现上会更加复杂。分布式系统将会是更难理解、设计、构建 和管理的,同时意味着应用程序的根源问题更难发现。

分布式系统的架构一般构成模块

分布式系统的架构

分布式的优点

项目描述
经济微处理机提供了比大型主机更好的性能价格比
速度分布式系统总的计算能力比单个大型主机更强
固有的分布性一些应用涉及到空间上分散的机器
可靠性如果一个机器崩溃,整个系统还可以运转
渐增计算能力可以逐渐有所增加

分布式的缺点

项目描述
软件分布式系统开发的软件还很少
网络网络可能饱和和引起其它的问题
安全容易造成对保密数据的访问

什么是分布式集群?

集群给用户的感觉就是一个单一独立的服务器,而实际上用户请求的是一组集群服务器。一组集群服务器包括一堆做做同一件事的服务器,这些机器可能需要统一协调管理,可以分布在一个机房,也可以分布在全国全球各个地区的多个机房。比如下面的Redis集群,每个客户端请求的方式都是一样的,但是背后是很多台机器在协同工作,每台机器干的事情都是一样的(存储和操作数据),只不过通过分片机制不同机器上存储的数据不一样,这样可以分散风险,假如有某个节点的机器挂了也只会影响部分数据。
在这里插入图片描述

什么是微服务?

微服务架构是一种将应用程序作为一组小型服务的设计方法,每个服务运行在其独立的进程中,并通过轻量级机制(TCP或者HTTP)进行通信。

微服务架构是一种分布式系统,因为它会将应用分解为单独的组件或“服务”。例如,微服务架构可能具有与业务功能(支付、用户、产品等)相对应的服务,其中各个对应组件负责相关职责的业务逻辑。因此,系统拥有服务的多个冗余副本,服务便不会出现集中故障点。


微服务里面的每个模块都可以是一个分布式集群
在这里插入图片描述


Spring Cloud微服务治理架构图
在这里插入图片描述

微服务和分布式系统有什么主要区别?

微服务是一种架构风格,它将应用程序分解为一组小的、独立的服务,每个服务都有特定的业务功能。分布式系统则是指多个网络中的计算机协同工作以完成共同的任务或目标。

微服务架构与分布式系统在开发过程中有何不同?

微服务架构强调服务的独立部署、扩展和灵活性,每个服务通常由不同的团队负责。而分布式系统更注重不同计算机之间的通信和协作。

为什么选择微服务架构而不是传统的分布式系统?

微服务架构提供了更好的模块化、更高的灵活性和可扩展性,允许快速开发和部署独立服务。它也有助于更好的错误隔离和容错,适合快速迭代的开发环境。微服务架构适用于需要快速迭代和独立扩展不同业务功能的应用程序。

在这里插入图片描述

这篇关于【初出江湖】大白话解释集中式、分布式、微服务的区别?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1129113

相关文章

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

native和static native区别

本文基于Hello JNI  如有疑惑,请看之前几篇文章。 native 与 static native java中 public native String helloJni();public native static String helloJniStatic();1212 JNI中 JNIEXPORT jstring JNICALL Java_com_test_g

Android fill_parent、match_parent、wrap_content三者的作用及区别

这三个属性都是用来适应视图的水平或者垂直大小,以视图的内容或尺寸为基础的布局,比精确的指定视图的范围更加方便。 1、fill_parent 设置一个视图的布局为fill_parent将强制性的使视图扩展至它父元素的大小 2、match_parent 和fill_parent一样,从字面上的意思match_parent更贴切一些,于是从2.2开始,两个属性都可以使用,但2.3版本以后的建议使

Collection List Set Map的区别和联系

Collection List Set Map的区别和联系 这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文章。 有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否

集中式版本控制与分布式版本控制——Git 学习笔记01

什么是版本控制 如果你用 Microsoft Word 写过东西,那你八成会有这样的经历: 想删除一段文字,又怕将来这段文字有用,怎么办呢?有一个办法,先把当前文件“另存为”一个文件,然后继续改,改到某个程度,再“另存为”一个文件。就这样改着、存着……最后你的 Word 文档变成了这样: 过了几天,你想找回被删除的文字,但是已经记不清保存在哪个文件了,只能挨个去找。真麻烦,眼睛都花了。看

javascript中break与continue的区别

在javascript中,break是结束整个循环,break下面的语句不再执行了 for(let i=1;i<=5;i++){if(i===3){break}document.write(i) } 上面的代码中,当i=1时,执行打印输出语句,当i=2时,执行打印输出语句,当i=3时,遇到break了,整个循环就结束了。 执行结果是12 continue语句是停止当前循环,返回从头开始。

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository。如果采用原始直接打包放到lib目录的方式进行处理,便对项目的管理带来一些不必要的麻烦。例如版本升级后需要重新打包并,替换原有jar包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们

开源分布式数据库中间件

转自:https://www.csdn.net/article/2015-07-16/2825228 MyCat:开源分布式数据库中间件 为什么需要MyCat? 虽然云计算时代,传统数据库存在着先天性的弊端,但是NoSQL数据库又无法将其替代。如果传统数据易于扩展,可切分,就可以避免单机(单库)的性能缺陷。 MyCat的目标就是:低成本地将现有的单机数据库和应用平滑迁移到“云”端