• 分布式与集群的区别


    今天看了篇文章,讲的是分布式和集群的区别,觉得挺有趣的,决定自己再写一篇,权当是加深印象了。

    分布式(distributed):是指在多台不同的服务器中部署不同的服务模块,通过远程调用协同工作,对外提供服务。

    集群(cluster):是指在多台不同的服务器中部署相同应用或服务模块,构成一个集群,通过负载均衡设备对外提供服务。

    打个比方:

    好比在一个餐馆里点菜吃饭,我们直接照着菜单点了很多菜,我们不用关心这些菜是怎么完成的,只需要它能在吃饭时间内把饭菜做好就行了,这里顾客的需求可以和计算机系统映射:

    上菜时间短--》性能

    干净卫生--》安全性

    菜品多放辣椒--》扩展性

    菜品美味--》可用性,

    这个菜馆目前的状态,一个厨师负责炒菜、切菜、洗菜等全部工序,就相当于一个单机集中式系统,一台部署了数据库、Web服务等全部系统。

    集群部署

    当菜馆来吃饭的顾客越来越多了,生意越来越好的时候,一个厨师明显无法满足多个顾客的需求了,既要保证菜品、味道,还要保证时间、卫生,如果厨师请假或生病,那么菜馆就没法经营了。这和计算机系统也是一样的,随着业务量的增长,所有业务集中在一个节点,容易宕机,网站的高可用、易伸缩、可扩展、安全等目标的要求就会很高了。

    为了提高待客能力,扩展菜馆生意,老板决定多请几个厨师,顾客的点菜可以分配给后厨的不同厨师来做。具体如何分配,可以按照先后顺序进行。

    映射到计算机系统当中,就是多台计算机提供同样的服务,也就是所谓的集群。用户不用关心是哪台计算机提供的服务,只需要能够得到自己需要的服务即可。通过负载均衡将任务分配到不同的计算机当中,达到系统资源的充分利用,缓解服务器在高流量情况下的压力。

    分布式部署:

    菜馆雇佣了多个厨师后,菜馆的服务能力确实得到了很大提升。但是,一个厨师既要负责洗菜、切菜、炒菜,还要负责上菜、刷碗,这样厨师无法专心完成炒菜的主要工作,会被其它很多琐事打扰,影响炒菜这个工序的质量,菜品在中间任何一个环节出了问题,也无法判断问题原因,到底是菜品本身不好导致,还是厨师炒菜有问题,还是在上菜过程中出的拆错,都无法追溯。而且随着店内顾客的增多,几个厨师还是会忙不过来。

    于是老板又请了几个洗菜工、墩子、服务员、采购员等员工,每个员工都只负责自己职责划分内的事情,术业有专攻,采购员可以识别菜品本身质量,洗菜工能把菜洗的很干净,厨师能够专心炒出美味的佳肴,这样菜馆的服务能力又大大提升了,发生问题,也能够及时查找原因和出处。

    映射到计算机系统中也是一样,把一个大的业务系统拆分成多个子业务系统,每个子业务系统负责自己专注的事情,然后通过网络进行通信和协调,对用户来说,就像访问的是同一台机器一样。这就是分布式部署。

  • 相关阅读:
    Linux Shell编程(3)——运行shell脚本
    Linux Shell编程(2)——第一个shell程序
    Linux Shell编程(1)——shell编程简介
    做“程序员”,不做“码农”,有哪些好办法?
    玩转大数据,顺利渡过34岁裁退危机!
    Google IO 2017为我们带来了什么
    《经验之谈》想要做好SEO推广必知要事,峰任策划告诉您。
    5月17日云栖精选夜读:分布式大数据系统巧实现,全局数据调度管理不再难
    程序员转型发展:拆除这些墙,才会发现更蓝的天空
    敢问路在何方?程序员转行应该卖水果还是卖烧饼
  • 原文地址:https://www.cnblogs.com/microsoftjava/p/10676363.html
Copyright © 2020-2023  润新知