集群和分布式:

集群 Cluster

  集群是为解决某个特定问题将多台计算机组合起来形成的单个系统

集群的类型:

  • LB:负载均衡集群,每个主机承担一部分访问请求
  • HA:高可用集群,避免单点失败的问题
  • HPC:高性能计算集群

分布式:

分布式:将数据、服务分布在不同的主机上。

分布式应用:

  • 分布式应用--服务按照功能拆分,使用微服务
  • 分布式静态资源--静态资源放在不同的存储集群上
  • 分布式数据和存储--使用key-value缓存系统
  • 分布式计算--对特殊业务使用分布式计算,比如Hadoop集群

集群和分布式:

集群:

  • 同一个业务系统,部署在多台服务器上。集群中每一台服务器实现的功能没有差别,数据和代码都是一样的

分布式:

  • 一个业务被拆成多个子业务,或者本身就是不同的业务,部署在多台服务器上。分布式中每一台服务器实现的功能是有差别的,数据和代码也是不一样的,分布式每台服务器功能加起来,才是完整的业务

LB Cluster 负载均衡集群

  • 通过硬件设备来实现负载均衡
    例如:F5 Big-IP
  • 通过软件来实现负载均衡
    例如:使用LVS、nginx、haproxy等。

负载均衡的会话保持:

  用户登录的时候通过cookie+session来保存用户的信息,session存放在其中一台服务器上,如果进行调度的时候,接收这个请求的机器上面没有对应的session信息,就会认为这是个新用户。
  为了解决这个问题,有一下的解决方案:

1. session sticky:session绑定,同一用户调度固定服务器

Source IP:LVS sh算法(对某一特定服务而言)

Cookie

缺点:固定的一台主机损坏会导致session的丢失

2. session replication:session复制,使每台服务器拥有全部session

session multicast cluster

3. session server:session服务器,专门使用一个服务器存放session信息

Memcached,Redis

HA Cluster 高可用集群

主要使用keepalived:vrrp协议来实现。