当前位置:网站首页>集群、分布式、微服务概念和区别
集群、分布式、微服务概念和区别
2022-06-22 17:52:00 【黄宝~】
概念:
集群是个物理形态,分布式是个工作方式。
- 分布式:一个业务分拆多个子业务,部署在不同的服务器上
- 集群:同一个业务,部署在多个服务器上
1:分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器集中在一起,实现同一业务。
分布式中的每一个节点,都可以做集群。而集群并不一定就是分布式的。
举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。
而分布式,从窄意上理解,也跟集群差不多,但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。
分布式的每一个节点,都完成不同的业务,一个节点垮了,那这个业务就不可访问了。
2:简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。
例如:如果一个任务由 10 个子任务组成,每个子任务单独执行需 1 小时,则在一台服务器上执行该任务需 10 小时。
采用分布式方案,提供 10 台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。(这种工作模式的一个典型代表就是 Hadoop 的 Map/Reduce 分布式计算模型)
而采用集群方案,同样提供 10 台服务器,每台服务器都能独立处理这个任务。假设有 10 个任务同时到达,10 个服务器将同时工作,1 小时后,10 个任务同时完成,这样,整身来看,还是 1 小时内完成一个任务!
好的设计应该是分布式和集群的结合,先分布式再集群,具体实现就是业务拆分成很多子业务,然后针对每个子业务进行集群部署,这样每个子业务如果出了问题,整个系统完全不会受影响。
另外,还有一个概念和分布式比较相似,那就是微服务。
微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。
区别:
1.分布式

将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。区别分布式的方式是根据不同机器不同业务。
上面:service A、B、C、D 分别是业务组件,通过API Geteway进行业务访问。
注:分布式需要做好事务管理。
分布式事务可参考:微服务架构的分布式事务解决方案
2.集群模式

集群模式是不同服务器部署同一套服务对外访问,实现服务的负载均衡。区别集群的方式是根据部署多台服务器业务是否相同。
注:集群模式需要做好session共享,确保在不同服务器切换的过程中不会因为没有获取到session而中止退出服务。
一般配置Nginx*的负载容器实现:静态资源缓存、Session共享可以附带实现,Nginx支持5000个并发量。
3.分布式是否属于微服务?
答案是肯定的。微服务的意思也就是将模块拆分成一个独立的服务单元通过接口来实现数据的交互。
4.微服务架构
微服务的设计是为了不因为某个模块的升级和BUG影响现有的系统业务。微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。

分布式和微服的架构很相似,只是部署的方式不一样而已。
边栏推荐
- Vs Code suddenly fails to jump
- 2022重庆幼教产业展览会|高科技玩具益智解压玩具博览会
- @Lucky user of "Qilu Duojiao", Shandong 5A scenic spot calls you to visit the park for free!
- 贪心之区间问题(1)
- China's two meteorological "new stars" data products are shared with global users
- UE4_UE5制作3DUI-跟随相机朝向(附工程)
- 贪心之区间问题(3)
- 有效的括号
- std::enable_ shared_ from_ This error: error: expected template name before '<' token
- 新人报道的笔记
猜你喜欢
![[learn shell programming easily]-4. The difference between single quotation marks and double quotation marks, the operation of integer values, the definition of arrays in the shell and the detailed us](/img/88/5d8800e5723b4e34e832271d139eaa.png)
[learn shell programming easily]-4. The difference between single quotation marks and double quotation marks, the operation of integer values, the definition of arrays in the shell and the detailed us

牛客网:最小覆盖子串

c# sqlsugar,hisql,freesql orm框架全方位性能测试对比之sqlserver

vs code突然无法进行代码跳转

第八届 GopherChina 大会蓄势待发!

Exness sorted out three problems to be solved in Musk's acquisition of Twitter

链表4- 21 合并两个有序链表

UE4_ Ue5 make 3dui follow the camera orientation (attached works)

2022年G2电站锅炉司炉题库及在线模拟考试
Complete the sqlsession interface and implementation classes
随机推荐
回文数(简单版)
平安证券开户安全吗?它和平安银行是什么关系呢?
Golang implements redis (10): local atomic transactions
预训练语言模型,bert,RoFormer-Sim又称SimBERTv2
預訓練語言模型,bert,RoFormer-Sim又稱SimBERTv2
使能伙伴,春节重大保障“不停歇”
mysql数据库设计
wpa_supplicant的状态机迁移
零基础学编程/学逆向/过检测(frida实战)
AUTOCAD——五种标注快捷键
TypeScript(7)泛型
Niuke.com: judge whether it is palindrome string
贪心之分配问题(2)
一些技术想法:
Cookie加密3+RPC解法
如何更改Apple Watch上的表盘
自定义数据库连接池类: 要求:封闭一个Collection对象的集合类
游戏NFT市场:OpenSea最易被切下的蛋糕
第八届 GopherChina 大会蓄势待发!
同花顺好用么?手机开户安全么?