zoukankan      html  css  js  c++  java
  • 集群与分布式的概念

    集群与分布式的概念

    集群与分布式的概念

    # 集群是指多个人在干同一件事情
    # 分布式是指多个人在做不同的事情
    

    exp:

    小饭店原来只有一个厨师,切菜洗菜备料炒菜全干。
    后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,两个厨师的关系是集群。
    
    为了让厨师专心炒菜,把菜做到极致,再请了个配菜师负责切菜,备菜,备料 ...  厨师和配菜师的关系是分布式。
    
    一个配菜师也忙不过来了,又请了个配菜师,两个配菜师关系是集群。
    
    一个配菜师因故请假了,但是其余的配菜师还是该啥就干啥,只是没请假的配菜师任务均匀的加量了,但他们的任务和职责是不变的,这是集群。
    

    图解

    区别与联系:

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

    分布式是解决中心化管理的问题,把所有的任务叠加到一个节点处理,太慢了。
    所以把一个大的问题拆分为多个小的问题,并分别解决,最终协同合作。分布式的主要工作是分解任务,将职能拆解。
    

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

     
    当压力进一步增大的时候,可能在需要存储的部分,mysql 无法面对很多的写压力。因为在 mysql 做成集群之后,主要的写压力还是在 master 的机器上面,其他 slave 机器无法分担写压力,从而这个时候,也就引出来分布式。
    
    分布式的主要应用场景是单台机器已经无法满足这种性能的要求,必须要融合多个节点,并且节点之间是相关之间有交互的。相当于在写 mysql 的时候,每个节点存储部分数据,也就是分布式存储的由来。存储一些非结构化数据:静态文件、图片、pdf、小视频 ... 这些也就是分布式文件系统的由来。
    

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

    分布式处理里必然包含任务分解与答案归并。分布式中的某个子任务节点,可能由一个集群来代替;集群中任一节点,都是做一个完整的任务。
    
    集群和分布式都是由多个节点组成,但是集群之间的通信协调基本不需要;而分布式各个节点的通信协调必不可少。
    
     将一套系统拆分成不同子系统部署在不同服务器上(这叫分布式),
    
     然后部署多个相同的子系统在不同的服务器上(这叫集群),部署在不同服务器上的同一个子系统应做负载均衡。 
    

    总结

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

  • 相关阅读:
    vue开发chrome扩展,数据通过storage对象获取
    Vue手动集成less预编译器
    Google Translate寻找之旅
    Javascript Range对象的学习
    Javascript Promises学习
    SublimeText 建立构建Node js系统
    We're sorry but demo3 doesn't work properly without JavaScript enabled. Please enable it to continue.
    npm安装包出现UNMET DEPENDENCY报错
    (转载)命令行说明中格式 尖括号 中括号的含义
    Linux重启网卡服务Failed to start LSB: Bring up/down networking.
  • 原文地址:https://www.cnblogs.com/surpass123/p/13305584.html
Copyright © 2011-2022 走看看