zoukankan      html  css  js  c++  java
  • 集群和分布式

    今天在写分布式爬虫时,突然想到了集群。下面我就说一下分布式和集群他们的区别。

    什么是分布式和集群?

    1.

    小场景:

    我们家开了一个饭店,但只有一个厨师,我们为了增加出菜的效率,就又聘请了一个厨师,这是两个厨师之间的关系就叫集群

    后来顾客越来越多,我们就像让厨师只炒菜其余的什么都不干,只要把菜炒到极致就可以了,就聘请了一个配菜师,这时厨师和配菜师之间的关系就是分布式

    2.

    集群是个物理形态,分布式是个工作方式。
    只要是一堆机器,就可以叫集群,他们是不是一起协作着干活,这个谁也不知道;一个程序或系统,只要运行在不同的机器上,就可以叫分布式。

    3.

    集群:多个人在一起作同样的事 。

    分布式 :多个人在一起作不同的事 。

    集群和分布式的区别?

    1)我记得在一本讲 tcp/ip 的书上有这样一句话:分布式是指 多个系统协同合作完成一个特定任务的系统。

    分布式是解决中心化管理的问题,把所有的任务叠加到一个节点处理,太慢了。

    所以把一个大的问题拆分为多个小的问题,并分别解决,最终协同合作。分布式的主要工作是分解任务,将职能拆解。

    2) 集群主要的使用场景是为了分担请求的压力,也就是在几个服务器上部署相同的应用程序,来分担客户端请求。

    当压力进一步增大的时候,可能在需要存储的部分,mysql 无法面对很多的写压力。因为在 mysql 做成集群之后,主要的写压力还是在 master 的机器上面,其他 slave 机器无法分担写压力,从而这个时候,也就引出来分布式。

    分布式的主要应用场景是单台机器已经无法满足这种性能的要求,必须要融合多个节点,并且节点之间是相关之间有交互的。相当于在写 mysql 的时候,每个节点存储部分数据,也就是分布式存储的由来。存储一些非结构化数据:静态文件、图片、pdf、小视频 ... 这些也就是分布式文件系统的由来。

    3)集群主要是简单加机器解决问题,对于问题本身不做任何分解;

    分布式处理里必然包含任务分解与答案归并。分布式中的某个子任务节点,可能由一个集群来代替;集群中任一节点,都是做一个完整的任务。

    集群和分布式都是由多个节点组成,但是集群之间的通信协调基本不需要;而分布式各个节点的通信协调必不可少。

     将一套系统拆分成不同子系统部署在不同服务器上(这叫分布式),

     然后部署多个相同的子系统在不同的服务器上(这叫集群),部署在不同服务器上的同一个子系统应做负载均衡。 

     

    分布式:一个业务拆分为多个子业务,部署在多个服务器上 。 

    集群:同一个业务,部署在多个服务器上 。

    使用场景:

    分布式是在高性能,高并发的时候使用(写分布式爬虫系统时);集群是在高可用的时候使用。

  • 相关阅读:
    js数组
    js中严格模式
    js 中bind
    HDU 2846(Trie树)
    HDU 4825(01 Trie树)
    Codeforces 900B (Java高精度或模拟)
    2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 I Reversion Count(Java大数)
    2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 B Goldbach (素数测试,随机化算法)
    HDU 2256(矩阵快速幂)
    HDU 6029(思维)
  • 原文地址:https://www.cnblogs.com/chengdongzi/p/10935257.html
Copyright © 2011-2022 走看看