首页 > 其他分享 >分布式、集群和微服务之间的区别

分布式、集群和微服务之间的区别

时间:2024-02-20 12:12:01浏览次数:26  
标签:服务 区别 系统 集群 分布式系统 架构 节点 分布式

分布式、集群和微服务之间的区别

     分布式系统是一种系统范式,而分布式架构是一种系统设计的方法论。它们的含义在某些情况下可能会重叠,但在其他情况下可能会有细微的区别。

    分布式系统

1. 分布式系统概念
是指由多个相互独立的节点(或者进程)组成的系统,这些节点通过网络进行通信和协作,共同完成系统的功能。分布式系统的节点可以是物理机、虚拟机、容器等各种形式,它们之间可以通过消息传递、远程调用等方式进行通信。

2. 分布式系统设计目标
提高系统的可扩展性和容错性。通过将系统拆分为多个部分,并将这些部分分布在不同的计算机上,可以降低单个节点的负载压力,提高系统的并发处理能力和容错性。


3. 分布式系统有哪些
典型的分布式系统包括数据库集群、分布式文件系统、分布式缓存等。

4. 注意点

首先需要明确的是,分布式对应的是就是单机,只有当单个节点的处理能力无法满足日益增长的计算、存储任务的时候,且硬件的提升(加内存、加磁盘、使用更好的CPU)高昂到得不偿失的时候,应用程序也不能进一步优化的时候,我们才需要考虑分布式系统。因为,分布式系统要解决的问题本身就是和单机系统一样的,而由于分布式系统多节点、通过网络通信的拓扑结构,会引入很多单机系统没有的问题,比如:复杂的通信协议、数据一致性、容错性等问题,为了解决这些问题又会引入更多的机制、协议(比如分布式一致性协议),带来更多的问题


分布式架构

分布式架构则更多地指的是一种设计模式或架构风格,它强调系统的不同部分分布在不同的节点上,并通过网络进行通信和协作。分布式架构通常关注系统的组织结构、通信协议、数据传输方式等方面的设计。在软件系统中,分布式架构通常用于构建分布式应用程序或服务。

集群
集群是指指多个节点做同一件事情。而分布式指多个节点,各自做不同事情,共同完成系统的功能。


微服务:

微服务是一种架构风格,将一个大型的软件应用拆分成一组小型的、独立部署的服务。每个服务都围绕着特定的业务功能进行构建,并可以独立部署、扩展和维护。
微服务架构强调将应用拆分成多个小型的服务,每个服务都有自己独立的数据存储和业务逻辑,通过轻量级的通信机制(如HTTP/RESTful API)进行交互。
微服务架构的优势包括提高开发和部署速度、灵活性、可伸缩性和可维护性。每个微服务都可以由小团队独立开发和管理,有利于快速迭代和创新。

注意事项:
1)微服务划分的程度根据业务不同而粒度不同,不是越细越好。因为一旦一个微服务的实体对象进行了调整,那么有多少个关联的微服务被污染了,就要不断定位其他微服务的依赖关系并重新发布,这种工作量已经超出了本该解决业务问题的工作量。
2)RPC之间的对象传递尽量用简单、松散的结构来做。以提高通信效率、降低系统复杂性,并支持系统的可扩展性和灵活性

区别:

分布式系统是一种系统架构,而微服务是一种设计思想或架构风格。
分布式系统可以包含多种不同的架构风格比如:SOA、P2P等,微服务只是其中之一。
微服务是在分布式系统的基础上发展出来的一种更加细粒度的架构方式,强调服务的自治性和独立部署。
微服务架构是一种分布式系统的设计选择,但并不是所有分布式系统都采用微服务架构。

标签:服务,区别,系统,集群,分布式系统,架构,节点,分布式
From: https://www.cnblogs.com/hld123/p/18022816

相关文章

  • 集群内ping外面主机
    1、cd /data01/datafocus/deploy/2、[root@master-192-168-0-30 deploy]# source focus_venv/activate 3、新增:fab add-hostnames master-192-168-0-23=192.168.0.234、去掉:fab add-hostnames master-192-168-0-23=''(focus_venv) [root@master-192-168-0-30 deplo......
  • Java集合篇之set,面试官:请说一说HashSet、LinkedHashSet、TreeSet的区别?
    写在开头Java的集合世界中主要由List,Set,Queue,Map构成,我们在之前的博文中已经学习了List,接下来我们继续学习Set集合。Set特点:存取无序,不可以存放重复的元素,不可以用下标对元素进行操作HashSet作为Set容器的代表子类,HashSet经常被用到,我们通过源码去分析它【源码查看】public......
  • 执行shell脚本文件有多少种方法?有什么区别?
    执行shell脚本文件有多少种方法?有什么区别?执行.sh​文件有几种方法,主要包括:直接运行:./your_script.sh这种方式需要在脚本文件的目录下执行,并确保脚本文件有执行权限(chmod+xyour_script.sh​)。这种方式的路径解析是相对于当前工作目录的。通过bash解释器运行:ba......
  • 执行shell脚本文件有多少种方法?有什么区别?
    执行shell脚本文件有多少种方法?有什么区别?执行.sh​文件有几种方法,主要包括:直接运行:./your_script.sh这种方式需要在脚本文件的目录下执行,并确保脚本文件有执行权限(chmod+xyour_script.sh​)。这种方式的路径解析是相对于当前工作目录的。通过bash解释器运行:ba......
  • int(1) 和 int(10) 有什么区别
    在mysql中int占4个字节,那么对于无符号的int,最大值是2^32-1=4294967295零填充一般int后面的数字,配合zerofill一起使用才有效。先看个例子:CREATETABLE`user`(`id`int(4)unsignedzerofillNOTNULLAUTO_INCREMENT,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT......
  • kubespray部署kubernetes集群【转】
    kubespray部署kubernetes集群1、kubespray简介Kubespray是开源的部署生产级别Kubernetes集群的项目,它整合了Ansible作为部署的工具。可以部署在AWS,GCE,Azure,OpenStack,vSphere,Packet(Baremetal),OracleCloudInfrastructure(Experimental)或Baremetal上。高可用集群可组......
  • TCP跟UDP区别
    TCP协议跟UDP协议都存在于传输层,都在程序之间传输数据。、 传输控制协议(TCP):TCP(传输控制协议)定义了两台计算机之间进行可靠的传输而交换的数据和确认信息的格式,以及计算机为了确保数据的正确到达而采取的措施。协议规定了TCP软件怎样识别给定计算机上的多个目的进程如何对分组重......
  • JMeter中Sample time、Load time、Response time、Latency time、Connection time的区
    转载自:https://www.cnblogs.com/youxin/p/8684891.html ==================  jmeter是一款纯java的性能测试工具,跨平台运行方便、提供图形化界面设置、简单易用。  在性能测试方法论中,很典型的方法就是二八原则,量化业务需求。二八原则:指80%的业务量在20%的时间里完......
  • Java中==和equals有什么区别
    原文网址:​​Java中==和equals有什么区别_IT利刃出鞘的博客-CSDN博客​​简介本文介绍java中==和equals的区别。分享Java技术星球(自学精灵),有面试真题和架构技术等:​​https://learn.skyofit.com/​​区别区别是:一个是运算符,一个是方法。==比较变量的值是否相同。如果比较......
  • for 循环 和 while循环的区别
     001、for循环:for循环的终止条件在for语句后面已经提前已知[root@pc1test1]#for((i=1;i<=3;i++));doecho$i;done##终止条件i<=3;i的变化规律;提前已知123 002、while循环;while循环的终止条件是在循环体中动态变化的[root@pc1test1]#i=1[roo......