作者:猥琐叔装嫩小孩 | 来源:互联网 | 2023-08-08 12:17
可能是因为对分布式和集群的敬畏,所以一直没有专门去了解,但是两者在日常工作学习中却是不可或缺以及必须理解的。专门去查了下,在这里做个简单解析。
前言(抛砖引玉):
小饭店原来只有一个厨师A,切菜洗菜备料炒菜全干。后来客人多了,厨房一个厨师忙不过来,又请了个厨师B,两个厨师都能炒一样的菜。为了让厨师专心炒菜,把菜做到极致,又请了个配菜师C负责切菜,备菜,备料。
这个背景下,厨师A和厨师B就属于集群,厨师A和厨师C属于分布式
所以,这里可以看出来,一起干同样事情的便是集群,而把一件事情分多个部分,由A、B、C等一起完成,ABC便是分布式
(官方正式的解释不想复制,大家可以自行百度,毕竟比较全面。)
分布式的作用和意义在哪?
1.稳定业务和多变业务分离:比如转账业务不会变,但转账完成后续动作多变,可能发短信,可能发邮件,还有别的奖励,也可能有个短期活动需要处理,如果每次变化都直接加到转账业务里,那就要频繁改动主业务,甚至需要重启,更甚至直接给主业物代码引入了新的bug
2.新业务老业务分离:一块成熟的业务,拓展出来一块新业务,新的业务只需要从老业务里面获取小部分数据或功能,剩下大部分都是很独立的逻辑,老业务模块根本不需要了解新业务模块,如果都堆积到老业务模块里面,笨重又混乱
3.团队隔离:核心业务系统由核心团队管理和维护,非核心业务系统由另外一个独立团队维护,互相暴露少量接口互通,互有边界控制
4.不同硬件需求:有的业务需要大内存,有的需要大硬盘,有的需要更强cpu,有的需要更多集群,根据不同需求分布到更适合的物理设备上,而不是统一配置爱用不用
5.还有更多理由需要分布式,即便是有先后顺序,也会把业务拆分成多个独立子系统,更多知识请百度“分布式”“微服务”“组件化”“模块化”
6.如果你的业务本来就很简单,拆分反而成了负担,也有拆分不合理后面重构合并到一起的
7.“分布式架构”在一体化系统里面相对应的概念是“接口分离原则”,对应的问题就应该是“一个方法就能解决问题,为什么要分开好几个方法或接口”
集群是使用服务器的一种方式,而分布式是使用服务器的一种策略思路。