分布式 or 集群?

为支撑一个中大型网站所搭建架构时,会选用一些技术栈。比如在多个 web 服务器前使用 LVS 做负载均衡,使用 keeplived 实现 LVS 高可用,在多个 Mysql 从节点前使用负载均衡器,Mongodb 使用复制集方式,使用 twemproxy 管理多个 Redis 节点,Mysql、Mongodb、Redis 做主从同步,使用 Hadoop 管理大数据,对 Mysql 分库分表分区,Mongodb 分片,多实例Memcached,按业务将服务划分等等。这些都是通过使用多个节点来响应请求、计算、存储从而应对访问量高、并发请求大、数据量大的问题。具有这种特征的架构我们称作为“分布式服务器集群架构”。

在这样一个架构里,对分布式和集群概念上很多时候就容易混淆。究竟哪些是分布式?哪些又是集群?分布式和集群怎么区分?

分布式是较少单个任务的执行时间,集群是提高单位时间执行任务数。分布式将不同的任务分布在不同的节点,集群将多个节点集中在一起实现相同的任务。

根据这个概念就很容易去区分在一个分布式服务器集群架构中哪些技术栈是分布式哪些是集群了。

  1. 多个 web 服务器前使用 LVS 做负载均衡 -- 集群(负载均衡集群)
  2. 使用 keeplived 实现 LVS 高可用 -- 集群(高可用集群)
  3. 在多个 Mysql 从节点前使用负载均衡器 -- 集群(负载均衡集群)
  4. Mongodb 使用复制集方式 -- 集群(负载均衡集群)
  5. 使用 twemproxy 管理多个Redis节点 -- 集群(分布式存储)
  6. Mysql、Mongodb、Redis做主从同步 -- 集群(高可用集群)
  7. 使用 Hadoop 管理大数据 -- 分布式(Mapreduce 分布式计算、HDFS 分布式存储)
  8. 对 Mysql 分库分表分区 -- 分布式(分布式存储)
  9. Mongodb 分片 -- 分布式(分布式存储)
  10. 多实例 Memcached -- 分布式(分布式存储(分布式缓存))
  11. 按业务将服务划分 -- 分布式(分布式服务)

添加新评论