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

2024-09-02 05:28

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

目录标题

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

什么是集中式?

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

什么是分布式?

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

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

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

分布式系统的架构

分布式的优点

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

分布式的缺点

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

什么是分布式集群?

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

什么是微服务?

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

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


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


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

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

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

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

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

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

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

在这里插入图片描述

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



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

相关文章

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

Python中@classmethod和@staticmethod的区别

《Python中@classmethod和@staticmethod的区别》本文主要介绍了Python中@classmethod和@staticmethod的区别,文中通过示例代码介绍的非常详细,对大... 目录1.@classmethod2.@staticmethod3.例子1.@classmethod

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

Golan中 new() 、 make() 和简短声明符的区别和使用

《Golan中new()、make()和简短声明符的区别和使用》Go语言中的new()、make()和简短声明符的区别和使用,new()用于分配内存并返回指针,make()用于初始化切片、映射... 详细介绍golang的new() 、 make() 和简短声明符的区别和使用。文章目录 `new()`

Python中json文件和jsonl文件的区别小结

《Python中json文件和jsonl文件的区别小结》本文主要介绍了JSON和JSONL两种文件格式的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 众所周知,jsON 文件是使用php JSON(JavaScripythonpt Object No

java如何分布式锁实现和选型

《java如何分布式锁实现和选型》文章介绍了分布式锁的重要性以及在分布式系统中常见的问题和需求,它详细阐述了如何使用分布式锁来确保数据的一致性和系统的高可用性,文章还提供了基于数据库、Redis和Zo... 目录引言:分布式锁的重要性与分布式系统中的常见问题和需求分布式锁的重要性分布式系统中常见的问题和需求

Golang使用etcd构建分布式锁的示例分享

《Golang使用etcd构建分布式锁的示例分享》在本教程中,我们将学习如何使用Go和etcd构建分布式锁系统,分布式锁系统对于管理对分布式系统中共享资源的并发访问至关重要,它有助于维护一致性,防止竞... 目录引言环境准备新建Go项目实现加锁和解锁功能测试分布式锁重构实现失败重试总结引言我们将使用Go作

Redis分布式锁使用及说明

《Redis分布式锁使用及说明》本文总结了Redis和Zookeeper在高可用性和高一致性场景下的应用,并详细介绍了Redis的分布式锁实现方式,包括使用Lua脚本和续期机制,最后,提到了RedLo... 目录Redis分布式锁加锁方式怎么会解错锁?举个小案例吧解锁方式续期总结Redis分布式锁如果追求

结构体和联合体的区别及说明

《结构体和联合体的区别及说明》文章主要介绍了C语言中的结构体和联合体,结构体是一种自定义的复合数据类型,可以包含多个成员,每个成员可以是不同的数据类型,联合体是一种特殊的数据结构,可以在内存中共享同一... 目录结构体和联合体的区别1. 结构体(Struct)2. 联合体(Union)3. 联合体与结构体的