官网地址

程序猿升级课

热爱开源,喜欢摸索


浅谈分布式与集群(未完待续)

作者:@lxchinesszz
本文为作者原创,转载请注明出处

小编最近在做微服务架构的工程,工程是由之前公司的人搭建起来的,说直白就是理论架构,一个业务拆分多个子任务模块,部署在不同的服务器上,通过http协议进行通信,之所以这样其中主要原因是因为,项目开发中用到了不同的语言,对于大多数供销商使用node开发,对于支付使用java开发。在业余时间,小编我是一个喜欢新鲜事物,最近在研究Spring Cloud项目,项目中涉及到了服务的注册,这之间的知识,如果不理解,分布式和集群的区别,很难去学习,在博客上看了很多文章,虽有启发,但是总觉得不是自己总结的,很难吃透,于是一个深夜,趁着失眠,在手机上把内心所想写了,写来,在此总结。本文只做理论上说明,后面会面向单个技术更新博客。

前言

​ 作为开发人员,充满了对前辈们的敬仰之情,正是他们的当年的拼命的为了心中的那份对技术单纯的执着,使如今的我们站在了巨人的肩膀上,开发项目,减轻了工作的负担,再次发自内心的感谢。

这些技术就像武功秘籍一样,深深的诱惑这我们,仿佛拿到他们就可以纵横天下。

  • [ ] 分布式
  • [ ] 集群
  • [ ] 机器学习
  • [ ] 大数据

分布式

所谓的分布式就是并行计算,一个任务一台服务器要10小时计算,在不购买超级服务器的情况下,如何解决这个问题呢,答案就是分布式计算。用小型机群通过技术组成一个超级计算机,就是把这个任务分成十个子任务,每个子任务一个小时,那么等于十台小型机,一个小时就可以完成。


集群

什么是集群,集群区别于分布式,分布式是一种思想,集群就是一种物理体现。当十个子任务同时到达,如何在一个小时处理完成呢,用十台服务器处理,一台服务器处理一个子任务,也是一个小时就可以完成这十个任务。

两个优点
  • 高可用性

    集群特点,稳定,一台服务挂了,还有其他服务在运行,因为每台服务器都是执行独立的任务。
    
  • 可扩展性

    集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能
    
两大能力
  • 负载均衡

    负载均衡能把任务比较均衡地分布到集群环境下的计算和网络资源。
    
  • 错误恢复

    由于某种原因,执行某个任务的资源出现故障,另一服务实体中执行同一任务的资源接着完成任务。这种由于一个实体中的资源不能工作,另一个实体中的资源透明的继续完成任务的过程叫错误恢复。
    
    负载均衡和错误恢复都要求各服务实体中有执行同一任务的资源存在,而且对于同一任务的各个资源来说,执行任务所需的信息视图(信息上下文)必须是一样的。
    
两大技术
  • 集群地址

    集群由多个服务实体组成,集群客户端通过访问集群的集群地址获取集群内部各服务实体的功能。具有单一集群地址(也叫单一影像)是集群的一个基 本特征。维护集群地址的设置被称为负载均衡器。负载均衡器内部负责管理各个服务实体的加入和退出,外部负责集群地址向内部服务实体地址的转换。有的负载均 衡器实现真正的负载均衡算法,有的只支持任务的转换。只实现任务转换的负载均衡器适用于支持ACTIVE-STANDBY的集群环境,在那里,集群中只有 一个服务实体工作,当正在工作的服务实体发生故障时,负载均衡器把后来的任务转向另外一个服务实体。
    

  • 内部通信

    为了能协同工作、实现负载均衡和错误恢复,集群各实体间必须时常通信,比如负载均衡器对服务实体心跳测试信息、服务实体间任务执行上下文信息的通信。
    具有同一个集群地址使得客户端能访问集群提供的计算服务,一个集群地址下隐藏了各个服务实体的内部地址,使得客户要求的计算服务能在各个服务实体之间分布。内部通信是集群能正常运转的基础,它使得集群具有均衡负载和错误恢复的能力。
    

总结

再简单的说一点,就是同一个业务按分为子任务运行在不同主机上叫分布式,

同一个业务运行在不同主机上叫集群,两者区别就是业务是否拆分为子任务。是否并行计算。

分布式就不可以,因为是并行计算,虽然提高了计算能力,但是如果一台挂了,那么就会影响这个任务的正常进行。

posted @ 2017-02-21 22:03  chinesszz  阅读(96)  评论(0编辑  收藏  举报
ヾ(≧O≦)〃嗷~