【新手向】Linux服务器集群系统各概念辨析

集群,冗余,负载均衡集群,负载均衡,主从复制,读写分离,分布式,分布式计算,分布式计算平台,并行计算......刚刚踏入服务器架构的菜鸟们每每会被这些概念弄的不知所云,一脸懵逼。那么今天就来谈谈这些概念所表明的意义以及它们的使用场景。html

形成菜鸟们困惑的缘由,主要是广义和狭义,以及目的和客观做用 两个方面。
因此,太深的概念没必要深究,也没有必要吹毛求疵。纯概念化的东西毫无心义,更重要的是它的使用场景,固然,概念在必定程度上自己就是说明了它的使用场景。全部这些概念都是为了解决生产环境的实际问题。前端

那么,咱们实际生产环境中都有什么问题呢?mysql

1. 当数据库性能遇到问题时,是否可以横向扩展,经过添加服务器的方式达到更高的吞吐量,从而充分利用现有的硬件实现更好的投资回报率。linux

  1. 是否拥有实时同步的副本,当数据库面临灾难时,能够短期内经过故障转移的方式保证数据库的可用性。此外,当数据丢失或损坏时,可否经过所谓的实时副本(热备)实现数据的零损失。
  2. 数据库的横向扩展是否对应用程序透明,若是数据库的横向扩展须要应用程序端进行大量修改,则所带来的后果不只仅是高昂的开发成本,同时也会带来不少潜在和非潜在的风险。

集群和冗余的区别?

这两个概念并非对立关系, 多台服务器作集群(不是主从),自己就有冗余和负载均衡的效果。nginx

狭义上来讲,集群就是把多台服务器虚拟成一台服务器,而冗余的每台服务器都是独立的。web

**集群的侧重点在于协同,多台服务器协同分担工做,提高效率。
冗余的侧重点在于防止单点故障,一主多备的架构,也就是“主从复制”。因此数据冗余=高可用集群=主从。**算法

主从必定程度上起到了负载均衡的做用。但其实主要目的仍是为了保证数据冗余和高可用性。
主从只提供一种成本较低的数据备份方案加上不完美的灾备和负载均衡。因为复制存在时间差,不能同步读,因此只是不完善的负载均衡和有损灾备。sql

主从显然达不到集群的严格度,不管是HA 还AA(多活并行集群),主从都达不到数据一致性的集群要求,
主从很难严格界定是那种模式,能够归类为:有必定冗余度的非一致性异步副本(不可靠不一样步),对于没有严格一致性要求的系统,能够定制为分担负载、查询过期报表的一种措施。数据库

集群

仍是上面提到的,所谓集群,简单来讲就是“多台服务器协同分担工做”,重点在“协同”上。因此,任务调度是集群的核心技术,由于集群是一组相互独立的、经过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。apache

所谓的负载均衡,高可用,高性能又是什么呢?

集群有负载均衡集群,高可用集群,高性能集群,分别侧重于抗并发,避免单点故障和大数据下的并行处理。三者也有不一样的实现方法,但同时这三者又是相辅相成的。

Load Balance负载均衡着重在于提供服务并发处理能力的集群。是为了消除性能瓶颈,固然也能够起到备份工做。把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,下降对主服务器的硬件和软件要求。

实现原理:一个负载均衡器加上一个集群实现的。负载均衡集群中有一个分发器或者叫调度器,咱们将其称之为Director,它处在多台服务器的上面,分发器根据内部锁定义的规则或调度方式从下面的服务器群中选择一个以此来响应客户端发送的请求。分摊到多个操做单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工做任务。


High Available高可用以提高服务在线的能力的集群。
高可用集群主要是为了不单点故障存在的,备机平时不参与工做。高可用集群是服务的可用性比较高,当咱们某台服务器死机后不会形成咱们的服务不可用。其工做模式则是将一个具备故障的服务转交给一个正常工做的服务器,从而达到服务不会中断。通常来讲咱们集群中工做在前端(分发器)的服务器都会对咱们的后端服务器作一个健康检查,若是发现咱们服务器当机就不会对其在作转发。
衡量标准:可用性=在线时间/(在线时间+故障处理时间)
高可用性群集,是保证业务连续性的有效解决方案,通常有两个或两个以上的节点,且分为活动节点及备用节点。一般把正在执行业务的称为活动节点,而做为活动节点的一个备份的则称为备用节点。当活动节点出现问题,致使正在运行的业务(任务)不能正常运行时,备用节点此时就会侦测到,并当即接续活动节点来执行业务。从而实现业务的不中断或短暂中断。
实现原理:利用集群管理软件,当主机故障时,备机可以自动接管主机的工做,并及时切换过去,以实现对用户的不间断服务。


High Performance高性能着重用于处理一个海量任务。高性能的集群是当某一个任务量很是大的时候,咱们作一个集群共同来完成这一个任务,因此又被称为“并行处理集群”。充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,一般用于科学计算领域,好比基因分 析,化学分析等。

实现原理:并行处理集群是将大任务划分为小任务,分别进行处理的机制。通常这样的集群用来科学研究与大数据运算等方面的工做。如今比较火的Hadoop就是使用的并行处理集群。

高可用和负载均衡有什么区别?

HA和LB确实不是一个概念。解决方案的侧重点彻底不一样。HA偏重于备用资源,切机时会有业务的断开的,保证了数据的安全,但形成资源的浪费。LB侧重于资源的充分应用,没有主备的概念,只有资源的最大限度的加权平均应用,基本不会业务的中断。

从目的上来讲:HA的目的是不中断服务,LB的目的是为了提升接入能力,虽然常常放一块儿用,但确实是两个不一样的领域。从功能上来讲:HA在一条路不通的时候提供另外一条路可走;LB是春运时的多个窗口。通俗来讲HA其实就是春运一共有八个窗口售票,可是你们就都集中到一号窗口,一号窗口累趴下了后,你们一块儿去二号,二号不行去三号,这样就形成了闲置资源的一种浪费,可是LB就至关于八个窗口同时开放,均衡负载,不会使一个窗口(服务器)的压力过大。LB一般采用在负载比较重的网络服务中。一些比较大型的网站和邮件服务,并发量比较大的状况。

HA和LB是两个概念的问题,通常来讲没有谁优谁劣的标准,只有在特定的环境下,谁更适合的问题。 表面看LB通常都包含了高可用性,比HA功能更强,性能更好,但这只是概念上的“先进”,实际中不少场合HA是优选。 至于什么是“好用”,仍是那句话,很差说,要看具体环境、应用和价格,没有绝对的好。

向上拓展和向外拓展(单机和多机)

向上拓展:升级单台服务器的硬件。
缺点是在必定的范围以内它的性能是上升的趋势,可是超出范围以后就是降低的趋势。由于随着它的cpu的个数增长咱们须要给咱们的cpu仲裁,并且随着cpu个数的增长资源竞争性越大。

向外拓展:增长新的服务器。 优势是增减服务器很方便,并且没有向上扩展随着增长性能降低。

集群管理工具

Docker的Swarm, Fleet, 谷歌的Kubernetes, apache的Mesos
四大集群管理工具大比拼

负载均衡

所谓负载均衡,简单点来讲就是“把大访问量分发给不一样的服务器”,也就是分流请求。

六种实现负载均衡的方法?

LVS集群中实现的三种IP负载均衡技术

几种负载均衡技术的实现 - CSDN博客
web 负载均衡 - CSDN博客
六大Web负载均衡原理与实现 - CSDN博客

http重定向协议实现负载均衡(HTTP重定向就是应用层的请求转发。用户的请求其实已经到了HTTP重定向负载均衡服务器,服务器根据算法要求用户重定向,用户收到重定向请求后,再次请求真正的集群)
优势:简单。
缺点:性能较差。
      

dns域名解析负载均衡(DNS域名解析负载均衡就是在用户请求DNS服务器,获取域名对应的IP地址时,DNS服务器直接给出负载均衡后的服务器IP。)
优势:交给DNS,不用咱们去维护负载均衡服务器。
缺点:当一个应用服务器挂了,不能及时通知DNS,并且DNS负载均衡的控制权在域名服务商那里,网站没法作更多的改善和更强大的管理。
      

反向代理负载均衡(在用户的请求到达反向代理服务器时(已经到达网站机房),由反向代理服务器根据算法转发到具体的服务器。经常使用的apache,nginx均可以充当反向代理服务器。)
优势:部署简单。
缺点:代理服务器可能成为性能的瓶颈,特别是一次上传大文件。
      


IP负载均衡(LVS-NAT,在请求到达负载均衡器后,负载均衡器经过修改请求的目的IP地址,从而实现请求的转发,作到负载均衡。)
优势:性能更好。
缺点:负载均衡器的宽带成为瓶颈。      

直接路由负载均衡(LVS-DR,数据链路层负载均衡(在请求到达负载均衡器后,负载均衡器经过修改请求的mac地址,从而作到负载均衡,与IP负载均衡不同的是,当请求访问完服务器以后,直接返回客户。而无需再通过负载均衡器。 ))

IP隧道负载均衡(LVS-TUN, )

LVS集群中的IP负载均衡技术

Linux服务器集群系统(三)--LVS集群中的IP负载均衡技术

集群之LVS(负载均衡)详解 - 一我的的天空@ - 博客园

LVS+Keepalived高可用负载均衡集群架构实验_服务器应用_Linux公社-Linux系统门户网站

负载均衡和反向代理有什么区别?

作了反向代理才能实现负载均衡。负载均衡是作反向代理的目的之一。
反向代理和负载均衡有何区别? - 知乎

nginx负载均衡分发请求的几种方式?

5种
基于Nginx的软件负载均衡实现解读 - 文章 - 伯乐在线

默认的轮询
指定权重
IP绑定IP_hash(每一个请求按访问IP的hash结果分配,这样每一个访客固定访问一个后端服务器,能够解决session的问题)
第三方的fair和url_hash两种方法

主从复制

主从复制的做用?

主从是一种用于数据容错和灾备的高可用解决方案,而不是一种处理高并发压力的解决方案(负载均衡是用来抗并发的)。这是一个客观做用和目的的问题。

  1. 主机负责查询,从机负责增删改。
  2. 能够在从机上执行备份,以免备份期间影响主机的服务。
  3. 主从复制以后,也能够在从机上查询,以下降主机的访问压力。
    可是,只有更新不频繁的数据或者对实时性要求不高的数据能够经过从服务器查询,实时性要求高的数据仍需从服务器查询。(由于主从复制有同步延迟,因此不可以保证强数据一致性)

mysql 主从复制原理 - Aiapple - 博客园

主从复制和读写分离的区别?

主从复制是实现读写分离的技术之一,也是实现读写分离的前提条件。
作读写分离时最重要的就是确保读库和写库的数据统一,而主从复制是实现数据统一最简单的方法(并不可以保证强数据一致性)。
读写分离,顾名思义,就是一个表只负责向前台页面展现数据,然后台管理人员对表的增删改查在另外一个表中,把两个表分开,就是读写分离。
主从复制则是一个表数据增删改以后会即时更新到另外一个表中,保证两个表的数据一致。

实现主从复制的方法?

MySQL 主从复制 - 学习心得 - SegmentFault
高性能Mysql主从架构的复制原理及配置详解 - CSDN博客
MySQL主从复制,双机热备实战 - CSDN博客

如何减小主从复制的同步延迟?

深刻解析Mysql 主从同步延迟原理及解决方案
MySQL主从数据库同步延迟问题解决

主从复制侧重点不一样的几种变形?

双机热备、双机互备和双机双工,这三者之间的区别

理解集群和双机热备之间区别与联系

双机热备,双机互备,双机双工

双机热备(主从复制):主机+备机,
双机互备:主机(备机)+备机(主机),互为主备
双机双工:主机+主机,两台机器同时运行。

分布式

什么是分布式计算?

何为分布式计算 - CSDN博客
分布式计算泛型 - CSDN博客

分布式和集群有什么区别?

转(探讨分布式系统与集群的区别) - 小洋哥

广义上的分布式是指===》将不一样的服务分布在不一样的服务器上,
而集群指的是===》将几台服务器集中在一块儿,实现同一业务。
分布式中的每个节点,均可以作集群。
而集群并不必定是分布式的。

举例:就好比新浪网,访问的人多了,他能够作一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,若是有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。而分布式,从窄意上理解,也跟集群差很少,可是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器能够顶上来。分布式的每个节点,都完成不一样的业务,一个节点垮了,哪这个业务就不可访问了。

相关文章
相关标签/搜索