
集群是指将我们的服务器由传统的单台服务器,部署为多台。一方面可以使我们的服务器并行运行从而提高服务器的计算速度。另一方面可以对我们的主服务器提供备份 *** 作,提高系统的容错性。当主服务出现宕机或者请求流量过高的时候,可以切换到其他服务器进行响应,保障客户端的稳定运行。
然后,我们来聊聊什么是分布式。
分布式是指将一个完整的业务线拆分成多个独立的 *** 作单元,各个 *** 作单元之间可以独立运行,提供系统的高可用以及高拓展性。比如,一个门户网站有登陆,,视频。。每一个都可以拆分成独立的 *** 作单元,并且每个 *** 作单元可以部署在多台服务器上,也就是形成我们的集群。
综上所述,其实集群是多台服务器做同样的事情,而分布式则是做不同的事情。下面有一个通俗易懂的例子。一个饭馆里面原来只有一个厨子,后来生意越来越好,一个人忙不过来了,于是又请了一个厨子,这两个厨子之间的关系就是集群。在后来,为了把菜品做的很精致和细化。又请了一个专门切菜和配菜的配菜师,厨子和配菜师的关系就属于分布式。最后,又请了一个配菜师,这两个配菜师也是属于集群的关系。总而言之,分布式和集群主要作用是就是为了解决系统的高可用以及高并发。
最后,在聊聊负载均衡。
负载均衡是一种方法,常用的是nginx反向代理,其实负载均衡是可以理解为搭建集群的一部分,属于集群服务器的前置系统。比如,一个门户网站,请求流量过高的时候,为了保障服务器的正常稳定运行,由nginx来均摊请求到后台服务器。尽量保障每台服务器承受同等的负载。集群和负载均衡的区别如下:
1、集群(Cluster)
所谓集群是指一组独立的计算机系统构成的一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。
2、负载均衡(Load Balance)
网络的负载均衡是一种动态均衡技术,通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理均衡地分配出去。这种技术基于现有网络结构,提供了一种扩展服务器带宽和增加服务器吞吐量的廉价有效的方法,加强了网络数据处理能力,提高了网络的灵活性和可用性。
3、特点
(1)高可靠性(HA)。利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。
(2)高性能计算(HP)。即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析、化学分析等。
(3)负载平衡。即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。
LVS系统结构与特点
1 Linux Virtual Server:简称LVS。是由中国一个Linux程序员章文嵩博士发起和领导的,基于Linux系统的服务器集群解决方案,其实现目标是创建一个具有良好的扩展性、高可靠性、高性能和高可用性的体系。许多商业的集群产品,比如RedHat的Piranha、 Turbo Linux公司的Turbo Cluster等,都是基于LVS的核心代码的。
2 体系结构:使用LVS架设的服务器集群系统从体系结构上看是透明的,最终用户只感觉到一个虚拟服务器。物理服务器之间可以通过高速的 LAN或分布在各地的WAN相连。最前端是负载均衡器,它负责将各种服务请求分发给后面的物理服务器,让整个集群表现得像一个服务于同一IP地址的虚拟服务器。
3 LVS的三种模式工作原理和优缺点: Linux Virtual Server主要是在负载均衡器上实现的,负载均衡器是一台加了 LVS Patch的22x版内核的Linux系统。LVS Patch可以通过重新编译内核的方法加入内核,也可以当作一个动态的模块插入现在的内核中。Session信息的复制试集群的重要的环节,如果你使用tomcat的性能不满足需要,需要设置的集群了,我建议你使用weblogic(9以上),它的集群功能很强大,会话复制功能很安全,而且配置起来很简单。
一般情况下weblogic的性能要远远大于tomcat,
由于oracle收购了bea,对weblogic采取了销售原则,就是免费试用,收费服务。现在weblogic10以上的版本不要任何费用。一、主从服务器
1、两台服务器。主服务器Master复制数据的更新、插入、删除等 *** 作; 从服务器Slave负责查询(读写分离,减缓服务器压力)
2、主服务器更新数据的同时更新从服务器的数据(数据备份)
3、当主服务器出现文件时,可用从服务器代替主服务器,保证网站的正常运行,同时检测主服务器存在的问题。注意:从服务器仍然只有查询功能,如银行系统更新时只能查询余额,不能存取款。(服务器可用性)
4、当把从服务器真正设置为主服务器时(即主从服务器设置调换),拥有更新数据的功能。
5、MyISAM不支持事务,但查询性能比InnoDB强;InnoDB支持事务,更新 *** 作性能比MyISAM强。因此,主服务器可以设置成MyISAM存储引擎,从服务器可以设置成InnoDB存储引擎(灵活设置存储引擎)
二、负载均衡
1、多台服务器。一个域名映射到多台服务器IP。
2、用户发出请求,提交到负载均衡服务器,由负载均衡服务器发送请求到不同的服务器。
3、负载均衡服务器选取服务器方法(负载均衡算法):
1、轮询:每台服务器轮换
2、加权轮询:为了应对某些服务器性能好,可以让他们的权重高一点,被选中的几率大一些。
3、最少连接:哪台服务器处理的连接少,就发给哪台服务器。
4、随机
4、存在的问题:客户端存在缓存,如果服务器出现故障,客户端报错。
5、分类:DNS负载均衡、>负载均衡和高可用性的侧重点不同。负载均衡不一定意味着高可用性。
假设我们在机房里建起了一个访问量很高的网站,然后我们用一个负载均衡器,三台完全相同的Tomcat服务器,实现了负载均衡,所有流量都会被按某种算法分配给三台服务器。
那么,这个系统是高可用的吗?并不一定。如果只考虑Tomcat服务器的话,我们使用了三台服务器,比只用一台服务器的确既增加了负载平衡又增加了可用性。但是,从整个系统的角度来看,增加服务器的数量,只能算提高系统可用性的一个方面。
高可用性意味着高MTBF(平均故障间隔)和低故障恢复时间,也就是系统连续长时间运行,且能从当机状态快速恢复运行的能力。很明显,上述系统没达到这两个条件。
首先,它有多个单点故障点:
一个负载均衡器,一套网络设备、供电设备,等(软件方面)。
这注定使系统MTBF受到极大制约。
提高MTBF的方法很直观:备份。为了消除第二个单点故障,备份组件还需要处于不同地理位置。这样的话,就算一个位置断网、停电,其他位置的系统都能继续运行。如果再考虑到地震、洪水等自然灾害和其他因素,备份组件甚至需要处于不同城市、不同国家。
其次,虽然有了备份,系统还是有当机的可能性,所以我们还需要考虑系统当机之后快速恢复系统功能,也就是缩短故障恢复时间。这需要缩短故障反应时间并合理保存系统状态等,不再详述。
所以,负载均衡只能提高部分系统可用性(以服务器热备的形式),为了提高系统的可用性,我们还需要综合考虑其他因素。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)