目录

集群简介

为什么要使用集群

集群的常见分类

3.1 集群的常见分类

3.2 不同种类的集群介绍

4.1 企业中常见的集群软硬件产品

4.2 对于集群软硬件产品如何选型

4.3 如何选择开源集群软件产品


集群简介

简单地说,集群就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。这些服务器之间可以彼此通信,协同向用户提供应用程序,系统资源和数据,并以单一系统的模式加以管理。当用户请求集群系统时,集群给用户的感觉就是一个单一独立的服务器,而实际上用户请求的是一组集群服务器。

举个例子:

打开谷歌,百度的页面,看起来好简单,也许你觉得用几分钟就可以制作出相似的网页,而实际上,这个页面的背后是由成千上万台服务器集群协同工作的结果。

若要用一句话描述集群,即一堆服务器合作做同一件事,这些机器可能需要统一协调管理,可以分布在一个机房,也可以分布在全国全球各个地区的多个机房。

为什么要使用集群

(1)高性能

一些国家重要的计算密集型应用(如天气预报,核试验模拟等),需要计算机有很强的运算处理能力。以全世界现有的技术,即使是大型机,其计算能力也是有限的,很难单独完成此任务。因为计算时间可能会相当长,也许几天,甚至几年或更久。因此,对于这类复杂的计算业务,便使用了计算机集群技术,集中几十上百台,甚至成千上万台计算机进行计算。

假如你配一个LNMP环境,每次只需要服务10个并发请求,那么单台服务器一定会比多个服务器集群要快。只有当并发或总请求数量超过单台服务器的承受能力时,服务器集群才会体现出优势。

(2)价格有效性

通常一套系统集群架构,只需要几台或数十台服务器主机即可。与动辄价值上百万元的专用超级计算机相比便宜了很多。在达到同样性能需求的条件下,采用计算机集群架构比采用同等运算能力的大型计算机具有更高的性价比。

早期的淘宝,支付宝的数据库等核心系统就是使用上百万元的小型机服务器。后因使用维护成本太高以及扩展设备费用成几何级数翻倍,甚至成为扩展瓶颈,人员维护也十分困难,最终使用PC服务器集群替换之,比如,把数据库系统从小机结合Oracle数据库迁移到MySQL开源数据库结合PC服务器上来。不但成本下降了,扩展和维护也更容易了。

(3)可伸缩性

当服务负载,压力增长时,针对集群系统进行较简单的扩展即可满足需求,且不会降低服务质量。

通常情况下,硬件设备若想扩展性能,不得不增加新的CPU和存储器设备,如果加不上去了,就不得不购买更高性能的服务器,就拿我们现在的服务器来讲,可以增加的设备总是有限的。如果采用集群技术,则只需要将新的单个服务器加入现有集群架构中即可,从访问的客户角度来看,系统服务无论是连续性还是性能上都几乎没有变化,系统在不知不觉中完成了升级,加大了访问能力,轻松地实现了扩展。集群系统中的节点数目可以增长到几千乃至上万个,其伸缩性远超过单台超级计算机。

(4)高可用性

单一的计算机系统总会面临设备损毁的问题,如CPU,内存,主板,电源,硬盘等,只要一个部件坏掉,这个计算机系统就可能会宕机,无法正常提供服务。在集群系统中,尽管部分硬件和软件也还是会发生故障,但整个系统的服务可以是7*24小时可用的。

集群架构技术可以使得系统在若干硬件设备故障发生时仍可以继续工作,这样就将系统的停机时间减少到了最小。集群系统在提高系统可靠性的同时,也大大减小了系统故障带来的业务损失,目前几乎100%的互联网网站都要求7*24小时提供服务。

(5)透明性

多个独立计算机组成的松耦合集群系统构成一个虚拟服务器。用户或客户端程序访问集群系统时,就像访问一台高性能,高可用的服务器一样,集群中一部分服务器的上线,下线不会中断整个系统服务,这对用户也是透明的。

(6)可管理性

整个系统可能在物理上很大,但其实容易管理,就像管理一个单一映像系统一样。在理想状况下,软硬件模块的插入能做到即插即用。

(7)可编程性

在集群系统上,容易开发及修改各类应用程序。

集群的常见分类

3.1 集群的常见分类

计算机集群架构按功能和结构可以分成以下几类:

  • 负载均衡集群,简称LBC或者LB

  • 高可用性集群,简称HAC

  • 高性能计算集群,简称HPC

  • 网格计算集群

提示:

负载均衡集群高可用性集群是互联网行业常用的集群架构模式,也是我们要学习的重点。

3.2 不同种类的集群介绍

(1)负载均衡集群

-负载均衡集群为企业提供了更为实用,性价比更高的系统架构解决方案。负载均衡集群可以把很多客户集中的访问请求负载压力尽可能平均地分摊在计算机集群中处理。客户访问请求负载通常包括应用程序处理负载和网络流量负载。这样的系统非常适合使用同一组应用程序为大量用户提供服务的模式,每个节点都可以承担一定的访问请求负载压力,并且可以实现访问请求在各节点之间动态分配,以实现负载均衡。

-负载均衡集群运行时,一般是通过一个或多个前端负载均衡器将客户访问请求分发到后端的一组服务器上,从而达到整个系统的高性能和高可用性。一般高可用性集群和负载均衡集群会使用类似的技术,或同时具有高可用性与负载均衡的特点。

负载均衡集群的作用为:

  • 分摊用户访问请求及数据流量(负载均衡)

  • 保持业务连续性,即7*24小时服务(高可用性)。

  • 应用于Web及数据库等服务器的业务

负载均衡集群典型的开源软件包括LVS,Nginx,Haproxy等。如下图所示:

提示:
不同的业务会有若干秒的切换时间,DB业务明显长于Web业务切换时间。

(2)高可用性集群

一般是指在集群中任意一个节点失效的情况下,该节点上的所有任务会自动转移到其他正常的节点上。此过程并不影响整个集群的运行。

当集群中的一个节点系统发生故障时,运行着的集群服务会迅速作出反应,将该系统的服务分配到集群中其他正在工作的系统上运行。考虑到计算机硬件和软件的容错性,高可用性集群的主要目的是使集群的整体服务尽可能可用。如果高可用性集群中的主节点发生了故障,那么这段时间内将由备节点代替它。备节点通常是主节点的镜像。当它代替主节点时,它可以完全接管主节点(包括IP地址及其他资源)提供服务,因此,使集群系统环境对于用户来说是一致的,即不会影响用户的访问。

高可用性集群使服务器系统的运行速度和响应速度会尽可能的快。他们经常利用在多台机器上运行的冗余节点和服务来相互跟踪。如果某个节点失败,它的替补者将在几秒钟或更短时间内接管它的职责。因此,对于用户而言,集群里的任意一台机器宕机,业务都不会受影响(理论情况下)。

高可用性集群的作用为:

当一台机器宕机时,另外一台机器接管宕机的机器的IP资源和服务资源,提供服务。

常用于不易实现负载均衡的应用,比如负载均衡器,主数据库,主存储对之间。

高可用性集群常用的开源软件包括Keepalived,Heartbeat等,其架构图如下图所示:

(3)高性能计算集群

高性能计算集群也称并行计算。通常,高性能计算集群涉及为集群开发的并行应用程序,以解决复杂的科学问题(天气预报,石油勘探,核反应模拟等)。高性能计算集群对外就好像一个超级计算机,这种超级计算机内部由数十至上万个独立服务器组成,并且在公共消息传递层上进行通信以并行运行应用程序。在生产环境中实际就是把任务切成蛋糕,然后下发到集群节点计算,计算后返回结果,然后继续领新任务计算,如此往复。

(4)网格计算集群

由于很少用到,在此略

特别提示:

在互联网的网站中,比较常用的就是负载均衡集群和高可用性集群

常用的集群软硬件介绍及选型

4.1 企业中常见的集群软硬件产品

互联网企业常用的开源集群软件有:Nginx,LVS,Haproxy,Keepalived,heartbeat。

互联网企业常用的商业集群硬件有:F5,Netscaler,Radware,A10等,工作模式相当于Haproxy的工作模式。

淘宝,赶集网,新浪等公司曾使用过Netscaler负载均衡产品。集群硬件Netscaler的产品图如下图所示:

集群硬件F5产品如下图所示:

4.2 对于集群软硬件产品如何选型

当企业业务重要,技术力量又薄弱,并且希望出钱购买产品及获取更好的服务时,可以选择硬件负载均衡产品,如F5,Netscaler,Radware等,此类公司多为传统的大型非互联网企业,如银行,证券,金融业及宝马,奔驰公司等

对于门户网站来说,大多会并用软件及硬件产品来分担单一产品的风险,如淘宝,腾讯,新浪等。融资了的企业会购买硬件产品,如赶集网等网站。

中小型互联网企业,由于起步阶段无利润可赚或者利润很低,会希望通过使用开源免费的方案来解决问题,因此会雇佣专门的运维人员进行维护。例如:51CTO等

相比较而言,商业的负载均衡产品成本高,性能好,更稳定,缺点是不能二次开发,开源的负载均衡软件对运维人员的能力要求较高,如果运维及开发能力强,那么开源的负载均衡软件是不错的选择,目前的互联网行业更倾向于使用开源的负载均衡软件。

4.3 如何选择开源集群软件产品

中小企业互联网公司网站在并发访问和总访问量不是很大的情况下,建议首选Nginx负载均衡,理由是Nginx负载均衡配置简单,使用方便,安全稳定,社区活跃,使用的人逐渐增多,成为流行趋势,另外一个实现负载均衡的类似产品为Haproxy(支持L4和L7负载,同样优秀,但社区不如Nginx活跃)。

如果要考虑Nginx负载均衡的高可用功能,建议首选Keepalived软件,理由是安装和配置简单,使用方便,安全稳定,与Keepalived服务类似的高可用软件还有Heartbeat(使用比较复杂,并不建议初学者使用)

如果是大型企业互联网公司,负载均衡产品可以使用LVS+Keepalived在前端做四层转发(一般是主备或主主,如果需要扩展可以使用DNS或前端使用OSPF),后端使用Nginx或者Haproxy做7层转发(可以扩展到百台),再后面是应用服务器,如果是数据库与存储的负载均衡和高可用,建议选择LVS+Heartbeat,LVS支持TCP转发且DR模式效率很高,Heartbeat可以配合drbd,不但可以进行VIP的切换,还可以支持块设备级别的数据同步(drbd),以及资源服务的管理。

(转载来源:https://www.cnblogs.com/chensiqiqi/p/9162926.html)

什么是集群?看完这篇你就知道啦!相关推荐

  1. 看完这篇文章,你的Python基础就差不多了(附571集精品教程)

    学一门语言贵在坚持用它,不用就淡忘了,而记录下一篇文章也有助于日后快速回忆.全文分为两大部分,分别是Python基础语法和面向对象. 入门Python其实很容易,但是我们要去坚持学习,每一天坚持很困难 ...

  2. 第六十二期:看完这篇还不了解Nginx,那我就哭了!

    看完这篇还不了解Nginx,那我就哭了! Nginx 同 Apache 一样都是一种 Web 服务器.基于 REST 架构风格,以统一资源描述符(Uniform Resources Identifie ...

  3. 看完这篇文章,还不懂nginx,算我输

    看完这篇文章,还不懂nginx,算我输 参考:https://mp.weixin.qq.com/s/PeNWaCDf_6gp2fCQa0Gvng 1. Nginx产生~ Nginx 同 Apache ...

  4. redis hashmap过期_看完这篇再也不怕 Redis 面试了

    0.前言 Redis是跨语言的共同技术点,无论是Java还是C++都会问到,所以是个高频面试点. 笔者是2017年才开始接触Redis的,期间自己搭过单机版和集群版,不过现在 大一些的 公司都完全是运 ...

  5. 学习Nginx,看完这篇超详细的文章就够了

    目录 本文简介 一.Nginx的基本概念 1.1.Nginx是什么? 1.2.Nginx能帮助我们做些什么? 1.3.Nginx的特性 二.Nginx的安装 2.1.环境介绍 2.2.安装Nginx ...

  6. 看完这篇分析,还不懂分布式事物,请给我差评

    看完这篇分析,还不懂分布式事物,请给我差评 咖啡拿铁 架构师小秘圈 今天 作者:咖啡拿铁,现就职于美团点评,后端研发 来自:公众号咖啡拿铁(ID:code_3092860495) 0 题记 又或者在网 ...

  7. 看完这篇再也不怕 Redis 面试了

    看完这篇再也不怕 Redis 面试了 0x00.前言 Redis是跨语言的共同技术点,无论是Java还是C++都会问到,所以是个高频面试点. 笔者是2017年才开始接触Redis的,期间自己搭过单机版 ...

  8. redis 3.0 cluster 集群 学习之路篇 [3]

    周氏一族,整理技术文档,给下一代留点教程...... redis 3.0 cluster 安装篇,请看 http://zhoushouby.blog.51cto.com/9150272/1560400 ...

  9. html5 游戏前景怎么样,独家 HTML5游戏目前究竟怎么样?看完这篇文章,你或许会清晰很多...

    原标题:独家 HTML5游戏目前究竟怎么样?看完这篇文章,你或许会清晰很多 文/DataEye CEO 汪祥斌 从5月份白鹭的10亿估值,到最近悟空间.山水地.火缘步甲的千万级以上的融资,我们可以感受 ...

  10. hashmap是有序还是无序_说实话,你要是看完这篇 HashMap ,和面试官扯皮真的就没问题了!

    文章来源:看完这篇 HashMap ,和面试官扯皮就没问题了 原文作者:cxuan 来源平台:微信公众号 (如果你没有时间细抠本文,可以直接看 HashMap 概述,能让你对 HashMap 有个大致 ...

最新文章

  1. LVS_NAT实现负载均衡
  2. linux 卸载 rtx,Ubuntu20.04系统卸载软件及清理系统垃圾缓存以及新力得
  3. android build获取ext,android – 如何在Gradle中获取当前构建类型
  4. mysql 二进制日志查看_使用mysqlbinlog从二进制日志文件中查询mysql执行过的sql语句 (原)...
  5. java中将date插入mysql中date_JAVA 处理时间 - java.sql.Date、java.util.Date与数据库中的Date字段的转换方法[转]...
  6. c语言找最长串指针改错,2013年计算机二级C语言上机试题及解析35
  7. 【深拷贝VS浅拷贝】------【巷子】
  8. 在url中传递参数(方法二)
  9. C++前序中序后序非递归遍历
  10. php table td边框,怎样对table和td技巧性设置表格边框
  11. Go-获取整形切片中的最大值最小值
  12. HTML页面如何引入其他HTML页面
  13. [每日一雷] C++多线程unique_lock condition_varibale mutex 动态释放内存泄露问题delete出现corrupted unsorted chunks
  14. 项目管理工具project软件学习(七) - 创建资源,分配资源、查看资源负荷
  15. 【centos8】问题解决:Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirrorlist:.
  16. 普通话测试第四题评分标准_普通话等级考试内容及评分标准
  17. 如何使用DolphinDB处理Tushare金融数据
  18. 阿里云电脑无影云桌面收费标准(CPU内存/云盘/互联网访问带宽)
  19. Keil 和 IAR静态库生成和使用方法
  20. 基于NXP_LS1012A 芯片ARM工控主板

热门文章

  1. android手机短信屏蔽
  2. 5000元性价比高的笔记本_5000元左右的笔记本有哪些 高性价比笔记本推荐【详解】...
  3. java rpm卸载_怎样使用rpm命令一次性删除依赖的软件包
  4. 管理技术团队的心得——不当甩手掌柜
  5. 梅科尔工作室-赵赟-鸿蒙笔记3
  6. CSDN博客怎样加入量子恒道统计?
  7. python右下角弹窗_python+pyqt实现右下角弹出框
  8. PPTV的KEY生成算法
  9. 统计学习方法 | 决策树
  10. 保卫萝卜项目(java端)