目录
1.什么是集群与分布式
分布式主要是指将不同业务分布到不同的地方;而集群主要是指将几台服务器集中在一起,实现同一个业务。同时,分布式是以缩短单个任务执行时间来提升效率的,解决高并发问题;而集群主要是通过提高单位时间内执行的任务数来提升效率的,提高系统的可用性。所以集群是保证系统高可用的重要手段之一。
最后,集群可能运行着一个或多个分布式系统,也可能根本没有运行分布式系统。分布式系统可能运行在一个集群上,也可能运行在不属于一个集群的多台机器上。分布式中的每一个节点都可以做集群,而集群并不一定就是分布式的。

集群架构

分布式架构
2.分布式架构
分布式架构可以简单分为集中式架构和非集中式架构。
2.1集中式架构
在很多场景下,我们的请求都会汇总到一台服务器上,由这台服务器统一协调我们的请求和其他服务器之间的关系。这种由一台服务器统一管理其他服务器的方式就是分布式体系结构中的集中式架构(也称为Master/Slave架构),其中统一管理其他服务器的服务器是主,其他服务器是从。
系统内所有的业务都是先由Master处理,多个Slave与Master连接,并将自己的信息汇报给Master,由Master统一进行资源和任务调度并存储集群节点的状态,然后Master根据这些信息将任务下达给Slave。Slave执行任务并将结果反馈给Master。
集中式结构最大的特点就是部署结构简单。这式因为集中式系统的中央服务器往往式多个具有较强计算能力和存储能力的计算机,为此中央服务器进行统一管理和任务调度时,无须考虑对任务的多节点部署,而节点服务器之间无须通信和协作,只要与中央服务器通信协作即可。
集中式架构的应用场景非常多,比如SVN,Kubernetes的集群管理机制都是这样的。
2.2非集中式架构
集中式结构对中心服务器性能的要求很高,而且存在单点瓶颈和单点故障问题。为了解决这个问题,分布式领域又出现了另一个经典的系统结构,即非集中式结构,也叫做分布式结构。

在非集中式结构中,没有中央服务器和节点服务器之分,所有的服务器地位都是平等的。相比于集中式结构,非集中式结构降低了某一个或者某一簇计算机集群的压力,在解决了单点瓶颈和单点故障问题的同时,还提升了系统的并发度,比较适合大规模集群的管理。
比较典型的非集中式分布式架构系统有Apache Cassandra。
Cassandra的名字来源于古希腊神话,是特洛伊的一位悲剧性的女先知的名字,因此项目的Logo是一只放光的眼睛。
Apache Cassandra是一个开源的分布式数据库管理系统,最初由Facebook开发,旨在处理海量数据。采用无中心化的对等节点架构,支持多数据中心复制和线性扩展,避免了单点故障。
Apache Cassandra核心特征:
分布式架构:Cassandra由多个节点组成分布式网络服务,数据写入会被复制到其他节点,读操作则路由到相应节点。集群扩展只需要添加新节点,无需重启或手动迁移数据。
灵活的数据模型:基于列族的结构化存储,支持动态添加或移除字段,无需预先定义模式。这使得它在处理半结构化数据时效率很高。
高可扩展性和可用性:通过一致哈希算法分配数据。支持可调一致性级别,确保在节点故障时数据不丢失。
多数据中心支持:可跨多个数据中心复制数据,实现容灾和低延迟访问。