文章目录
一、基本原理
1.1 单机&集群&分布式
1.1.1 集群
-
定义
同一个业务,部署在多个服务器上(不同的服务器运行同样的代码,干同一件事) -
特点
- 本来只有一台机器处理访问,现在有两台机器处理访问了,分担了压力。
- 如果其中一台故障,暂时用不了了。这时还有另一台可以备用。
-
分类
-
高可用集群( High Availability Cluster)
常见的就是2个节点做成的HA集群,有很多通俗的不科学的名称,比如”双机热备”, “双机互备”, “双机”。
高可用集群解决的是保障用户的应用程序持续对外提供服务的能力。 (请注意高可用集群既不是用来保护业务数据的,保护的是用户的业务程序对外不间断提供服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度)。
代表
heartbeat
keepalived -
负载均衡集群(Load Balance Cluster)
集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。
负载均衡集群一般用于相应网络请求的网页服务器,数据库服务器。这种集群可以在接到请求时,检查接受请求较少,不繁忙的服务器,并把请求转到这些服务器上。从检查其他服务器状态这一点上看,负载均衡和容错集群很接近,不同之处是数量上更多。
代表
LVS
HAproxy
Nginx -
科学计算集群(High Performance Computing Cluster)
高性能计算(High Perfermance Computing)集群,简称HPC集群。这类集群致力于提供单个计算机所不能提供的强大的计算能力。
-
1.1.2 分布式
- 定义
一个业务分拆多个子业务,部署在不同的服务器上(不同的服务器,运行不同的代码,为了同一个目的) - 特点
- 模块之间独立,各做各的事,便于扩展,复用性高
- 高吞吐量
某个任务需要一个机器运行10个小时,将该任务用10台机器的分布式跑(将这个任务拆分成10个小任务),可能2个小时就跑完了
1.2 负载均衡&反向代理