集群与分布式
集群 - 多个人在一起作同样的事
一组计算机作为一个整体向用户提供一组网络资源,这些单个的计算机系统就是集群的节点(node)
部署多个相同的子系统在不同的服务器上(这叫集群),部署在不同服务器上的同一个子系统叫做负载均衡。
集群的特性
- 可扩展性。集群的性能不限于单一的服务实体,新的服务实体可以动态的加入到集群,从而增强集群的性能。
- 高可用性。集群通过服务实体冗余使客户端免于轻易遭遇到“out of service”警告。当一台节点服务器发生故障的时候,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管。消除单点故障对于增强数据可用性、可达性和可靠性是非常重要的。
- 负载均衡。负载均衡能把任务比较均匀的分布到集群环境下的计算和网络资源,以便提高数据吞吐量。
- 错误恢复。如果集群中的某一台服务器由于故障或者维护需要而无法使用,资源和应用程序将转移到可用的集群节点上。这种由于某个节点中的资源不能工作,另一个可用节点中的资源能够透明的接管并继续完成任务的过程叫做错误恢复
集群分类
- 负载均衡集群(LOAD BALANCE CLUSTER,LBC)侧重于数据库的横向扩展,提升数据库的性能。
- 高可用性集群(HIGH AVAILABILITY CLUSTER,HAC)侧重保证数据库应用持续不断。大部分的数据库集群侧重与此。
- 高安全性集群(HIGH SECURITY CLUSTER,HSC)侧重于容灾。
分布式 - 多个人在一起作不同的事
将一套系统拆分成不同子系统部署在不同服务器上(这叫分布式)
- 分布式是指将不同的业务分布在不同的地方。
- 而集群指的是将几台服务器集中在一起,实现同一业务,分担请求的压力,提高性能,吞吐量。
- 分布式是解决中心化管理的问题,把一个大的问题拆分为多个小的问题,并分别解决,最终协同合作。分布式的主要工作是分解任务,将职能拆解。
- 分布式处理里必然包含任务分解与答案归并。分布式中的某个子任务节点,可能由一个集群来代替;而集群不一定是分布式的。
- 集群和分布式都是由多个节点组成,但是集群之间的通信协调基本不需要;而分布式各个节点的通信协调必不可少。
分布式知识体系概览
横向
分布式资源池化、分布式通信、分布式数据存储与管理、分布式计算。
在一定资源上,进行一定通信,通过一定计算,完成一定数据的加工和处理,从而对外提供特定的服务。
纵向
分布式协同、分布式调度、分布式追踪与高可用、分布式部署
分布式系统的指标
性能(Performance)
吞吐量(Throughput)、响应时间(Response Time)和完成时间(Turnaround Time)。
资源占用(Resource Usage)
空载资源占用 衡量自身资源占用
满载资源占用 衡量系统处理能力\
可用性(Availability)
系统停止服务的时间与总的时间之比衡量。
某功能的失败次数与总的请求次数之比来衡量
可扩展性(Scalability)
横向和纵向拓展
加速比(Speedup),也就是一个系统进行扩展后相对扩展前的性能提升
不同业务场景的不同指标需求