跳到主要内容

集群

多台机器怎样作为一个集群工作?​

  • 集群: 多个通过网络协作的节点共同承担工作,对使用者尽量表现为一个系统;
  • 节点协作: 集群软件负责组织成员、分派任务和协调状态,网络延迟会影响整体效率;
  • 入口节点: 一些设计由领导节点接收任务并汇总结果,但这只是常见结构,并非所有集群必须只有一个领导者;
  • 存储形式: 节点可以使用本地存储或共享存储,前者需同步副本,后者需防止并发覆盖;
  • 任务条件: 可并行拆解的工作更容易利用多节点计算和内存,串行瓶颈不会自动消失;

集群通常追求哪类目标?​

类型核心目标典型关注点
高可用集群节点失败后继续提供服务故障检测、接管、状态恢复
负载分担集群多节点共同处理请求分配公平性、热点与容量
高性能计算集群缩短可并行计算任务时间通信开销、任务划分、汇总
  • 收益: 可提升吞吐、扩展能力和可用性,也能利用普通机器降低单机采购门槛;
  • 成本边界: 网络、冗余和运维费用可能抵消硬件节省,应计算系统总成本;

双活与主备怎样应对节点失效?​

配置正常时故障时代价
Active-Active多节点同时工作剩余节点承接工作需要并发协调及足够冗余容量
Active-Passive活跃节点工作,备用待命备用接管备用资源平时可能闲置
  • 容量要求: 双活并不意味着任何一半节点失效后仍能保持全部性能,剩余节点必须有余量;
  • 状态要求: 接管者必须拥有可用状态,仅有一台备用机器不等于可恢复服务;

为什么集群不等于负载均衡?​

  • 区别: 集群强调成员协作,负载均衡强调分配流量;独立后端也可以置于负载均衡器后;
  • 运维复杂度: 每个节点都要安装和更新依赖,异构节点还需要区分容量与运行环境;
  • 监控要求: 汇集节点日志、利用率和通信异常,避免只看集群平均值掩盖热点;
  • 数据风险: 共享存储要协调写入,分布式副本要处理同步和失效,增加节点也增加协调工作;
  • 原文示例: Kubernetes、ECS、Cassandra、MongoDB 和 Redis 的相关部署可体现不同集群能力;