集群分两大类:应用程序集群与数据集群。
应用程序集群:此类集群很好做,没有资源限制。类似于现实中的仓库管理员,没有地域与空间的限制,只是一个入口,只要知道入口在哪就行了。
数据集群:比较难做,类似与现实中的仓库。
一个现实的场景就是,你要去一个厂家提一批货,首先打电话给10个仓库管理员中的一个就可以,然后知道了可以到北京的仓库提货也可以到上海的仓库提货,货是一样的。
10个仓库管理员就是应用程序集群,北京上海的仓库就是数据集群。两个仓库里要提的货必须一样。
10个仓库管理员不占空间和时间一个电话就可以了,只要每个仓库管理员管理员都知道一样的仓库信息就可以了。而两个仓库提货即占空间又占时间。而集群负责的就是分配和管理仓库管理员与仓库的信息。
分布式集群:这就更好理解了,北京仓库装的是大米,上海仓库装的是面粉。
其实Web负载,数据库负载,搜索引擎负载等等都很容易,核心就是每个主机保持一致。
Web负载集群:每个主机保持一致,集群负责自动判断那个主机负载小,就把请求分发到那个主机,可用ngin等简单实现。
数据库负载集群:每个主机数据库数据保持一致,可使用复制等技术保持,集群负责自动判断那个主机负载小,就把请求分发到那个主机。
故障转移集群:每个主机保持一致,集群负责自动判断那个主机负当机,自动转移到另外主机。
分布式集群:每个主机的数据等等按功能划分,而不是数据一样,集群负责自动判断那个主机任务是什么,就把请求分发到那个主机。
缓存集群,搜索引擎集群,nosql集群,静态资源集群等等与数据库负载集群类似,都是数据集群。