聊聊集群、分布式和微服务之间的联系和异同点

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: 对于集群、分布式和微服务,大家在工作中可能经常会听到,但是如果问你它们之间存在什么样的区别和联系,可能你一下子又感觉说不清楚,今天就这个话题,趁着周末时间,跟大家来一起聊聊。

对于集群、分布式和微服务,大家在工作中可能经常会听到,但是如果问你它们之间存在什么样的区别和联系,可能你一下子又感觉说不清楚,今天就这个话题,趁着周末时间,跟大家来一起聊聊。


弄明白是什么


要做三者之间的对比,首先要弄明白它们分别是什么?


集群


集群是指将多台服务器集中在一起,每台服务器都实现相同的业务,做相同的事情。

但是每台服务器并不是缺一不可,存在的作用主要是缓解并发压力和单点故障转移问题。我们可以利用一些廉价的符合工业标准的硬件构造高扩展、高性能、低成本、高可用的系统。


集群主要具有以下特性:


  • 伸缩性(Scalability):一组服务器组在一起,像单个服务器一样分担处理一个繁重的任务,我们只需要将新的服务器加入集群中即可;


  • 高可用性(High availability):集群的出现就是为了使集群的整体服务尽可能可用,以便考虑计算硬件和软件的易错性,避免单点失效发生;


  • 负载均衡(Load balancing):均衡的应用程序处理负载或网络流量负载,使负载可以在计算机集群中尽可能平均地分摊处理。


  • 高性能 (High Performance):并行计算(或称平行计算)是相对于串行计算来说的,并行计算能力的目的是用来提高计算速度。

微信图片_20220608211657.png

分布式


分布式服务是指将多台服务器集中在一起,服务是分散部署在不同的机器上的。


每台服务器都实现总体中的不同业务,做不同的事情。一个服务可能负责几个功能,是一种面向 SOA 的架构。各分开部署的部分彼此通过各种通讯协议交互信息,并且每台服务器都缺一不可,如果某台服务器故障,则部分功能缺失,或导致整体无法运行。


分布式存在的主要作用是大幅度的提高效率,缓解服务器的访问和存储压力。区别分布式的方式是一个业务分拆多个子业务,部署在不同的服务器上。


例如将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。


微信图片_20220608211701.jpg


微服务


微服务就是很小的服务,小到一个服务只对应一个单一的功能。


每个微服务仅关注于完成一件任务并很好地完成该任务,这个服务可以单独部署运行。各个微服务之间是松耦合的,服务之间可以通过 RPC 来相互交互。每个微服务都是由独立的小团队开发、测试、部署,上线,负责它的整个生命周期。


在做架构设计时,当你估算过最大用户量和并发量后,计算出单个应用服务器能否满足需求。如果用户量只有几百人的小应用,单体应用就能搞定,即所有应用部署在一个应用服务器里。如果是很大用户量,且某些功能会被频繁访问,或者某些功能计算量很大,建议将应用拆解为多个子系统,各自负责各自功能,这就是微服务架构。


微信图片_20220608211705.png

弄清楚异同点


弄明白是什么之后,就可以尝试找找它们之间的异同点了。


集群与分布式


区别1:部署多台服务器的业务是否相同。


集群模式:不同服务器部署同一套服务对外访问,实现服务的负载均衡;


分布式:其中每一个节点,都可以做集群,而集群并不一定就是分布式的。


比如站点访问的人多了,可以做一个群集。前面放一个响应服务器,后面几台服务器完成同一业务。如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将任务调度给哪一台去完成。


而分布式,从窄意上理解也跟集群差不多。但是它的组织比较松散,不像集群有一个组织性,一台服务器垮了,其它的服务器可以顶上来。分布式的每一个节点都完成不同的业务,一个节点垮了那这个业务就不可访问了。


注:集群模式需要做好 Session 共享,确保在不同服务器切换的过程中不会因为没有获取到 Session 而引起服务终止。


区别2:提升效率的方式不同


分布式:以缩短单个任务的执行时间来提升效率的;


集群:通过提高单位时间内执行的任务数来提升效率。


例如:如果一个任务由 10 个子任务组成,每个子任务单独执行需 1 小时,则在一台服务器上执行该任务需 10 小时。


  • 采用分布式方案,提供 10 台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。


  • 采用集群方案,同样提供 10 台服务器,每台服务器都能独立处理这个任务。假设有 10 个任务同时到达,10 个服务器将同时工作,经过10 小时后,10 个任务执行完成。这样整体来看,还是 1 小时内完成一个任务。


注:分布式需要做好事务管理。


分布式与微服务


区别点:架构很相似,只是部署的方式不一样而已。


微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。微服务的应用不一定是分散在多个服务器上,它也可以是同一个服务器。


微服务相比分布式服务来说,它的粒度更小,服务之间耦合度更低。由于每个微服务都由独立的小团队负责,因此它敏捷性更高。分布式服务最后都会向微服务架构演化,这是一种趋势。不过服务微服务化后带来的挑战也是显而易见的,例如服务粒度小,数量大,后期运维难度会增大。


分布式是否属于微服务?


答案是肯定的。


微服务将模块拆分成一个独立的服务单元通过接口来实现数据的交互。生产环境下的微服务肯定是分布式部署的,分布式部署的应用不一定是微服务架构的。


总结


1、集群


复制部署,能力一致,目的是实现:伸缩性、高可用、负载均衡和高性能;


2、微服务


分散能力,将大型复杂的软件拆分为多个微服务组成(不一定分散在多个服务器,可以是同一个服务器);


3、分布式


分散部署,是一种面向 SOA 的架构,服务分散部署在不同的机器上,实现不同业务,做不同的事情。

微信图片_20220608211708.jpg


相关文章
|
21天前
|
存储 分布式计算 负载均衡
分布式计算模型和集群计算模型的区别
【10月更文挑战第18天】分布式计算模型和集群计算模型各有特点和优势,在实际应用中需要根据具体的需求和条件选择合适的计算架构模式,以达到最佳的计算效果和性能。
47 2
|
1月前
|
消息中间件 存储 负载均衡
微服务与分布式系统设计看这篇就够了!
【10月更文挑战第12天】 在现代软件架构中,微服务和分布式系统设计已经成为构建可扩展、灵活和可靠应用程序的主流方法。本文将深入探讨微服务架构的核心概念、设计原则和挑战,并提供一些关于如何在分布式系统中实现微服务的实用指导。
49 2
|
1月前
|
人工智能 文字识别 Java
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
尼恩,一位拥有20年架构经验的老架构师,通过其深厚的架构功力,成功指导了一位9年经验的网易工程师转型为大模型架构师,薪资逆涨50%,年薪近80W。尼恩的指导不仅帮助这位工程师在一年内成为大模型架构师,还让他管理起了10人团队,产品成功应用于多家大中型企业。尼恩因此决定编写《LLM大模型学习圣经》系列,帮助更多人掌握大模型架构,实现职业跃迁。该系列包括《从0到1吃透Transformer技术底座》、《从0到1精通RAG架构》等,旨在系统化、体系化地讲解大模型技术,助力读者实现“offer直提”。此外,尼恩还分享了多个技术圣经,如《NIO圣经》、《Docker圣经》等,帮助读者深入理解核心技术。
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
|
17天前
|
存储 监控 大数据
构建高可用性ClickHouse集群:从单节点到分布式
【10月更文挑战第26天】随着业务的不断增长,单一的数据存储解决方案可能无法满足日益增加的数据处理需求。在大数据时代,数据库的性能、可扩展性和稳定性成为企业关注的重点。ClickHouse 是一个用于联机分析处理(OLAP)的列式数据库管理系统(DBMS),以其卓越的查询性能和高吞吐量而闻名。本文将从我的个人角度出发,分享如何将单节点 ClickHouse 扩展为高可用性的分布式集群,以提升系统的稳定性和可靠性。
44 0
|
1月前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
47 1
|
1月前
|
分布式计算 Hadoop 网络安全
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
30 1
|
1月前
|
存储 机器学习/深度学习 缓存
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
44 1
|
1月前
|
分布式计算 资源调度 Hadoop
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
47 1
|
1月前
|
Kubernetes Cloud Native 微服务
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
105 1
|
1月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
47 0