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

2024-09-02 05:28

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

目录标题

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

什么是集中式?

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

什么是分布式?

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

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

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

分布式系统的架构

分布式的优点

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

分布式的缺点

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

什么是分布式集群?

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

什么是微服务?

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

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


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


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

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

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

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

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

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

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

在这里插入图片描述

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



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

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

MySQL中VARCHAR和TEXT的区别小结

《MySQL中VARCHAR和TEXT的区别小结》MySQL中VARCHAR和TEXT用于存储字符串,VARCHAR可变长度存储在行内,适合短文本;TEXT存储在溢出页,适合大文本,下面就来具体的了解... 目录一、VARCHAR 和 TEXT 基本介绍1. VARCHAR2. TEXT二、VARCHAR

Java 线程池+分布式实现代码

《Java线程池+分布式实现代码》在Java开发中,池通过预先创建并管理一定数量的资源,避免频繁创建和销毁资源带来的性能开销,从而提高系统效率,:本文主要介绍Java线程池+分布式实现代码,需要... 目录1. 线程池1.1 自定义线程池实现1.1.1 线程池核心1.1.2 代码示例1.2 总结流程2. J

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

Java服务实现开启Debug远程调试

《Java服务实现开启Debug远程调试》文章介绍如何通过JVM参数开启Java服务远程调试,便于在线上排查问题,在IDEA中配置客户端连接,实现无需频繁部署的调试,提升效率... 目录一、背景二、相关图示说明三、具体操作步骤1、服务端配置2、客户端配置总结一、背景日常项目中,通常我们的代码都是部署到远程

java时区时间转为UTC的代码示例和详细解释

《java时区时间转为UTC的代码示例和详细解释》作为一名经验丰富的开发者,我经常被问到如何将Java中的时间转换为UTC时间,:本文主要介绍java时区时间转为UTC的代码示例和详细解释,文中通... 目录前言步骤一:导入必要的Java包步骤二:获取指定时区的时间步骤三:将指定时区的时间转换为UTC时间步

python中getsizeof和asizeof的区别小结

《python中getsizeof和asizeof的区别小结》本文详细的介绍了getsizeof和asizeof的区别,这两个函数都用于获取对象的内存占用大小,它们来自不同的库,下面就来详细的介绍一下... 目录sys.getsizeof (python 内置)pympler.asizeof.asizeof

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编