每次想好好了解什么是分布式时,查一堆资料,结果仍然不够理想。最好的结果就是了解一下什么是分布式计算、分布式存储、分布式应用。它根本是什么,解决了什么问题对于小白来说还是云里雾里,一知半解。
单机节点
说集群之前,先说单机。什么是单机,就是每一个最小处理单元。比如一个标准的士兵,他会铺路、会搭桥、会运输、会攻击等。可以想象每一个士兵的能力都是全面的,同时也是有限的。当一个任务大于一个一个士兵的能力范围时,这时候能想的就是增加人数。否则就只能是这个士兵自己坑次坑次干活。
集群
即便是最小的特种作战小组,也几乎不可能是一个人。集团军作战时更是成千上万人。假设每个人的能力还是标准统一的,那么由多个士兵组成的这个整体就是一个集群。当这个集群承担的任务越来越多时,他可以通过增加士兵的数量来解决集群能力不够的问题。
但是数量多了就会存在一个问题:有些士兵身上可能严重超负荷,有些士兵则悠闲的很,怎么让任务分配那些相对悠闲一点的士兵呢?这时候就需要一个负载均衡器。所有任务先统一先进负责均衡,由负载均衡来根据每个士兵的情况进行合理分配。这样子就可以合理分配资源,避免资源和时间的浪费。
随着时间的推移,当任务越来越复杂,量级越来越大时,会发现一个问题,简单的增加士兵数量已经不能有效提高任务完成的效率和质量了。这时候就要考虑分布式了,当然如果这集群是从0到1新组建的,那么在一开始就应该适当的考虑这方面,免得船大不好掉头。
分布式
随着任务的复杂化,各种兵种陆续出现。工兵、炊事员、机械兵、卫生员、信息兵、通信兵等等,不同的种类分成不同的小的服务(单个服务里其实可以理解为一个集群),各个服务再返过来组成一个大的集团军,进行协同作战。这就是分布式。
充分利用术业有专攻,让每一个服务独立运营,接触他们之间的强耦合性。同时当另一个集团军需要支援时,可以随时快速的调动一个微服务过去帮忙,提高复用性。
最后
不管是集群还是分布式,从严谨的计算科学去分析和部署,里面有很多东西值得也需要花很多时间去了解和学习。但是怎么用一种白话的方式让更多的非专业人士弄明白它们就是是个啥,有啥用,也是一件比较有意思的事。