文档库 最新最全的文档下载
当前位置:文档库 › 轻松实现Apache,Tomcat集群和负载均衡

轻松实现Apache,Tomcat集群和负载均衡

轻松实现Apache,Tomcat集群和负载均衡

2006-11-18 12:15

作者:罗代均 ldj_work#https://www.wendangku.net/doc/f510777726.html,,转载请保持完整性

0,环境说明

Apache :apache_2.0.55 1 个

Tomcat: apache-tomcat-5.5.17 (zip版) 2个

mod_jk:: mod_jk-apache-2.0.55.so 1个

第一部分:负载均衡

负载均衡,就是apache将客户请求均衡的分给tomcat1,tomcat2....去处理

1.安装apche,tomcat

https://www.wendangku.net/doc/f510777726.html,/下载Apache 2.0.55

https://www.wendangku.net/doc/f510777726.html,/download-55.cgi下载tomcat5.5 zip版本(解压即可,绿色版)

https://www.wendangku.net/doc/f510777726.html,/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.1 5/下载mod_jk,注意和 apache版本匹配

按照jdk,我的路径为:E:\ide\apache\Apache2

解压两份Tomcat, 路径分别为 E:\ide\tomcat1,E:\ide\tomcat2

下载mod_jk

2.修改Apache配置文件http.conf

在apache安装目录下conf目录中找到http.conf

在文件最后加上下面一句话就可以了

include "E:\ide\apache\Apache2\conf\mod_jk.conf"

2. http.conf 同目录下新建mod_jk.conf文件,内容如下

#加载mod_jk Module

LoadModule jk_module modules/mod_jk-apache-2.0.55.so

#指定 workers.properties文件路径

JkWorkersFile conf/workers.properties

#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器

JkMount /*.jsp controller

3.在http.conf同目录下新建 workers.properties文件,内容如下

worker.list = controller,tomcat1,tomcat2 #server 列表

#========tomcat1========

worker.tomcat1.port=8009 #ajp13 端口号,在tomcat下server.xml配置,默认8009

worker.tomcat1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址worker.tomcat1.type=ajp13

worker.tomcat1.lbfactor = 1 #server的加权比重,值越高,分得的请求越多

#========tomcat2========

worker.tomcat2.port=9009 #ajp13 端口号,在tomcat下server.xml配置,默认8009

worker.tomcat2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor = 1 #server的加权比重,值越高,分得的请求越多

#========controller,负载均衡控制器========

worker.controller.type=lb

worker.controller.balanced_workers=tomcat1,tomcat2 #指定分担请求的tomcat worker.controller.sticky_session=1

4.修改tomcat配置文件server.xml

如果你在不同电脑上安装tomcat,tomcat的安装数量为一个,可以不必修改tomcat配置文件

我这里是在同一台电脑上安装两个tomcat,所以需要更改其中一个的设置

打开tomcat2/conf/server.xml文件

5.编写一个测试jsp

建立一个目录test.里面新建一个test.jsp,内容为

<%

System.out.println("===========================");

%>

把test放到tomcat1,tomcat2的webapps下

6.启动apache,tomcat1,tomcat2,进行测试

通过http://localhost/test/test.jsp访问,查看tomcat1的窗口,可以看到打印了一行"=========="

再刷新一次,tomcat2也打印了一条,再刷新,可以看到请求会被tomcat1,tomcat2轮流处理,实现了负载均衡

第二部分,配置集群

只配置负载均衡还不行,还要session复制,也就是说其中任何一个tomcat的添加的session,是要同步复制到其它tomcat,集群内的tomcat都有相同的session

1. 修改tomcat1, tomcat2的server.xml,将集群部分配置的在注释符删掉,并将tomcat2的4001端口改为4002,以避免与tomcat冲突,当然,如果是两台电脑,是不用改端口的,去掉注释符即可

2,修改测试项目test

修改test.jsp,内容如下

<%@ page contentType="text/html; charset=GBK" %>

<%@ page import="java.util.*" %>

Cluster App Test

Server Info:

<%

out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"
");%>

<%

out.println("
ID " + session.getId()+"
");

// 如果有新的 Session 属性设置

String dataName = request.getParameter("dataName");

if (dataName != null && dataName.length() > 0) {

String dataValue = request.getParameter("dataValue");

session.setAttribute(dataName, dataValue);

}

out.print("Session 列表");

Enumeration e = session.getAttributeNames();

while (e.hasMoreElements()) {

String name = (String)e.nextElement();

String value = session.getAttribute(name).toString();

out.println( name + " = " + value+"
");

System.out.println( name + " = " + value);

}

%>

名称:


值:


然后在test 新建WEB-INF目录,WEB-INF下新建web.xml,内容如下

xmlns:xsi="https://www.wendangku.net/doc/f510777726.html,/2001/XMLSchema-instance"

xsi:schemaLocation="https://www.wendangku.net/doc/f510777726.html,/xml/ns/j2ee

https://www.wendangku.net/doc/f510777726.html,/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">

TomcatDemo

注意:在你的应用的web.xml加入 即可

ok,讲test复制到tomcat1,tomcat2的webapps下,重启apache,tomcat1,tomcat2,

输入网址http://localhost/test/test.jsp

新建一个名称为 xiaoluo ,值为 cdut 的session,提交查询,新开一个ie窗口,再提交查询,如图,可以看到,两个tomcat 是负载均衡,并且session同步的

集群HA负载均衡技术

实用标准文案 NLB 、HA、HPC集群、双机、负载均衡、 1.1什么是集群)就是一组计算机,它们作为一个整体向用户cluster 简单的说,集群()。一提供一组网络资源。这些单个的计算机系统就是集群的节点(node她们看/个理想的集群是,用户从来不会意识到集群系统底层的节点,在他来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和删改集群系统的节点。集群系统的主要优点:1.2 高可扩展性:(1):集群中的一个节点失效,它的任务可传递给其他节点。可高可用性HA(2) 以有效防止单点失效。 高性能:负载平衡集群允许系统同时接入更多的用户。(3) 高性价比:可以采用廉价的符合工业标准的硬件构造高性能的系统。(4) 集群系统的分类2.1 虽然,根据集群系统的不同特征可以有多种分类方法,但是一般把集群系统 分为两类:集群。,、高可用(High Availability)集群简称HA(1) 这类集群致力于提供高度可靠的服务。就是利用集群系统的容错性对外提供 小时不间断的服务,如高可用的文件服务器、数据库服务等关键应用。7*24负载均衡集群:使任务可以在集群中尽可能平均地分摊不同的计算机进行处 精彩文档. 实用标准文案 理,充分利用集群的处理能力,提高对任务的处理效率。以提供更加高效稳

定的服务。在实际应用中这几种集群类型可能会混合使用, 高就会包含高可用的网络文件系统、如在一个使用的网络流量负载均衡集群中,可用的网络服务。集群,也HPC(High Perfermance Computing)集群,简称(2)、性能计算称为科学计算集群。 在这种集群上运行的是专门开发的并行应用程序,它可以把一个问题的数据 从而可以分布到多台的计算机上,利用这些计算机的共同资源来完成计算任务,解决单机不能胜任的工作(如问题规模太大,单机计算速度太慢)。 如天气预报、这类集群致力于提供单个计算机所不能提供的强大的计算能力。石油勘探与油藏模拟、分子模拟、生物计算等。(HA) 3.1 什么是高可用性和可维护(reliability)计算机系统的可用性(availability)是通过系统的可靠性 来度量系统(MTTF)来度量的。工程上通常用平均无故障时间性(maintainability)于是可用性被定义)来度量系统的可维护性。,用平均维修时间(MTTR的可靠性MTTF/ (MTTF+MTTR)*100% 为:负载均衡服务器的高可用性主服务器和备份机上都需要建立一个备份机。为了屏蔽负载均衡服务器的失效,”这样的信息来监I am alive监控程序,通过传送诸如“运行High Availability它就接管当备份机不能在一定的时间内收到这样的信息时,控对方的运行状况。I am 并继续提供服务;当备份管理器又从主管理器收到“主服务器的服务IP精彩文档.实用标准文案 地址,这样的主管理器就开开始再次进IPalive”这样的信息是,它就释放服务行集群管理的工作了。为在主服务器失效的情况下系统能正常工作,我们在主、备份机之间实现负载集群系统配置信息的同步与备份,保持二者系统的基本一

Tomcat集群与负载均衡

Tomcat集群与负载均衡(转载) 在单一的服务器上执行WEB应用程序有一些重大的问题,当网站成功建成并开始接受大量请求时,单一服务器终究无法满足需要处理的负荷量,所以就有点显得有点力不从心了。另外一个常见的问题是会产生单点故障,如果该服务器坏掉,那么网站就立刻无法运作了。不论是因为要有较佳的扩充性还是容错能力,我们都会想在一台以上的服务器计算机上执行WEB应用程序。所以,这时候我们就需要用到集群这一门技术了。 在进入集群系统架构探讨之前,先定义一些专门术语: 1. 集群(Cluster):是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。 2. 负载均衡(Load Balance):先得从集群讲起,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。如一个提供Web服务的集群,对外界来看是一个大Web服务器。不过集群的节点也可以单独提供服务。 3. 特点:在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。集群系统(Cluster)主要解决下面几个问题: 高可靠性(HA):利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。 高性能计算(HP):即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析,化学分析等。 负载平衡:即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。 目前比较常用的负载均衡技术主要有: 1. 基于DNS的负载均衡 通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,他们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。 2. 反向代理负载均衡(如Apache+JK2+Tomcat这种组合) 使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。 3. 基于NAT(Network Address Translation)的负载均衡技术(如Linux Virtual Server,简称LVS)

数据库负载均衡解决方案

双节点数据库负载均衡解决方案 问题的提出? 在SQL Server数据库平台上,企业的数据库系统存在的形式主要有单机模式和集群模式(为了保证数据库的可用性或实现备份)如:失败转移集群(MSCS)、镜像(Mirror)、第三方的高可用(HA)集群或备份软件等。伴随着企业的发展,企业的数据量和访问量也会迅猛增加,此时数据库就会面临很大的负载和压力,意味着数据库会成为整个信息系统的瓶颈。这些“集群”技术能解决这类问题吗?SQL Server数据库上传统的集群技术 Microsoft Cluster Server(MSCS) 相对于单点来说Microsoft Cluster Server(MSCS)是一个可以提升可用性的技术,属于高可用集群,Microsoft称之为失败转移集群。 MSCS 从硬件连接上看,很像Oracle的RAC,两个节点,通过网络连接,共享磁盘;事实上SQL Server 数据库只运行在一个节点上,当出现故障时,另一个节点只是作为这个节点的备份; 因为始终只有一个节点在运行,在性能上也得不到提升,系统也就不具备扩展的能力。当现有的服务器不能满足应用的负载时只能更换更高配置的服务器。 Mirror 镜像是SQL Server 2005中的一个主要特点,目的是为了提高可用性,和MSCS相比,用户实现数据库的高可用更容易了,不需要共享磁盘柜,也不受地域的限制。共设了三个服务器,第一是工作数据库(Principal Datebase),第二个是镜像数据库(Mirror),第三个是监视服务器(Witness Server,在可用性方面有了一些保证,但仍然是单服务器工作;在扩展和性能的提升上依旧没有什么帮助。

windows下Tomcat负载均衡和集群配置

轻松实现Apache,Tomcat集群和负载均衡 作者:罗代均 ldj_work#https://www.wendangku.net/doc/f510777726.html,,转载请保持完整性 0,环境说明 Apache :apache_2.0.55 1 个 Tomcat: apache-tomcat-5.5.17 (zip版) 2个 mod_jk:: mod_jk-apache-2.0.55.so 1个 第一部分:负载均衡 负载均衡,就是apache将客户请求均衡的分给tomcat1,tomcat2....去处理 1.安装apche,tomcat https://www.wendangku.net/doc/f510777726.html,/下载Apache 2.0.55 https://www.wendangku.net/doc/f510777726.html,/download-55.cgi下载tomcat5.5 zip版本(解压即可,绿色版) https://www.wendangku.net/doc/f510777726.html,/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.15/下载mod_jk,注意和 apache版本匹配 按照jdk,我的路径为:E:\ide\apache\Apache2 解压两份Tomcat, 路径分别为 E:\ide\tomcat1,E:\ide\tomcat2

下载mod_jk

2.修改Apache配置文件http.conf 在apache安装目录下conf目录中找到http.conf 在文件最后加上下面一句话就可以了 include "E:\ide\apache\Apache2\conf\mod_jk.conf"

2. http.conf 同目录下新建mod_jk.conf文件,内容如下 #加载mod_jk Module LoadModule jk_module modules/mod_jk-apache-2.0.55.so #指定 workers.properties文件路径 JkWorkersFile conf/workers.properties #指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器JkMount /*.jsp controller 3.在http.conf同目录下新建 workers.properties文件,内容如下 worker.list = controller,tomcat1,tomcat2 #server 列表 #========tomcat1======== worker.tomcat1.port=8009 #ajp13 端口号,在tomcat下server.xml配置,默认8009 worker.tomcat1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址 worker.tomcat1.type=ajp13 worker.tomcat1.lbfactor = 1 #server的加权比重,值越高,分得的请求越多 #========tomcat2======== worker.tomcat2.port=9009 #ajp13 端口号,在tomcat下server.xml配置,默认8009 worker.tomcat2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址 worker.tomcat2.type=ajp13 worker.tomcat2.lbfactor = 1 #server的加权比重,值越高,分得的请求越多

集群的负载均衡技术综述

集群的负载均衡技术综述 摘要:当今世界,无论在机构内部的局域网还是在广域网如Internet上,信息处理量的增长都远远超出了过去最乐观的估计,即使按照当时最优配置建设的网络,也很快会感到吃不消。如何在完成同样功能的多个网络设备之间实现合理的业务量分配,使之不致于出现一台设备过忙、而别的设备却未充分发挥处理能力的情况,负载均衡机制因此应运而生。本组在课堂上讲解了《集群监控与调度》这一课题,本人在小组内负责负载均衡部分内容,以及PPT的制作。 关键词:负载均衡集群网络计算机 一、前言 负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。它主要完成以下任务:解决网络拥塞问题,服务就近提供,实现地理位置无关性;为用户提供更好的访问质量;提高服务器响应速度;提高服务器及其他资源的利用效率;避免了网络关键部位出现单点失效。 其实,负载均衡并非传统意义上的“均衡”,一般来说,它只是把有可能拥塞于一个地方的负载交给多个地方分担。如果将其改称为“负载分担”,也许更好懂一些。说得通俗一点,负载均衡在网络中的作用就像轮流值日制度,把任务分给大家来完成,以免让一个人累死累活。不过,这种意义上的均衡一般是静态的,也就是事先确定的“轮值”策略。 与轮流值日制度不同的是,动态负载均衡通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理分配出去。结构上分为本地负载均衡和地域负载均衡(全局负载均衡),前一种是指对本地的服务器集群做负载均衡,后一种是指对分别放置在不同的地理位置、在不同的网络及服务器群集之间作负载均衡。 服务器群集中每个服务结点运行一个所需服务器程序的独立拷贝,诸如Web、FTP、Telnet或e-mail服务器程序。对于某些服务(如运行在Web服务器上的那些服务)而言,程序的一个拷贝运行在群集内所有的主机上,而网络负载均衡则将工作负载在这些主机间进行分配。对于其他服务(例如e-mail),只有一台主机处理工作负载,针对这些服务,网络负载均衡允许网络通讯量流到一个主机上,并在该主机发生故障时将通讯量移至其他主机。 二、负载均衡技术实现结构 在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。它主要完成以下任务: 1.解决网络拥塞问题,服务就近提供,实现地理位置无关性 2.为用户提供更好的访问质量 3.提高服务器响应速度

分布式与集群的区别

1、Linux集群主要分成三大类( 高可用集群,负载均衡集群,科学计算集群)(下面只介绍负载均衡集群) 负载均衡集群(Load Balance Cluster) 负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。 负载均衡集群一般用于相应网络请求的网页服务器,数据库服务器。这种集群可以在接到请求时,检查接受请求较少,不繁忙的服务器,并把请求转到这些服务器上。从检查其他服务器状态这一点上看,负载均衡和容错集群很接近,不同之处是数量上更多。 2、负载均衡系统:负载均衡又有DNS负载均衡(比较常用)、IP负载均衡、反向代理负载均衡等,也就是在集群中有服务器A、B、C,它们都是互不影响,互不相干的,任何一台的机器宕了,都不会影响其他机器的运行,当用户来一个请求,有负载均衡器的算法决定由哪台机器来处理,假如你的算法是采用round算法,有用户a、b、c,那么分别由服务器A、B、C来处理; 3、分布式是指将不同的业务分布在不同的地方。 而集群指的是将几台服务器集中在一起,实现同一业务。 分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。 举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。 而分布式,从窄意上理解,也跟集群差不多,但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。 分布式的每一个节点,都完成不同的业务,一个节点垮了,哪这个业务就不可访问了。

集群和负载均衡的概念

集群和负载均衡的概念 什么是集群(Cluster) 所谓集群是指一组独立的计算机系统构成的多处理器系统,每台服务器都具有等价的地位,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。集群也是指多台计算机共同协作运行一个应用。 可分为以下几种: (1)高可靠性(HA)。利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。 (2)高性能计算(HP)。即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域。 (3)负载平衡(Load Balance)。负载均衡就是集群功能其中的一种。即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。 负载均衡是指将计算请求分配到集群中以使集群中的计算机的计算负载均衡。 负载均衡有两方面的含义: 1:大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间。 2:单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。实现起来可分为: (1)基于服务器软件的集群负载均衡。(在服务器上实现。) (2)NAT的集群负载均衡(在放火墙上,或在交换机上实现。) (3)基于DNS的集群负载均衡(在DNS服务器上实现。) (4)也可以用ISA放火墙实现集群负载均衡,但是需要有ISA服务器本人认为可行性不大。 基于服务器软件的集群负载均衡 microsoft的产品4种集群技术: 1:microsoft 集群服务(MSCS) 2:网络负载均衡(NLB) 3:组件负载均衡(CLB) 4:application center(应用负载均衡) linux 的集群技术:LVS(Linux VirtualServer) LVS对Linux的kernel进行了修改和增加所以要重新编译linux 内核。包名linux-2.4.20-ipvs-*.*.*.patch.gz 基与nat的集群负载均衡(在放火墙上,或在交换机上实现。) NAT(Network Address Translation 网络地址转换)简单地说就是将一个IP地址转换为另一个IP地址。一般用于内部地址与合法的转换。适用于解决Internet IP地址紧张、不想让网络外部知道内部网络结构等的场合下。 NAT负载均衡将一个外部IP地址映射为多个内部IP地址,对每次连接请求动态地转换为一个内部服务器的地址,将外部连接请求引到转换得到地址的那个服务器上,从而达到负载均衡的目的。 基于DNS的集群负载均衡(在DNS服务器上实现。) DNS负载均衡技术是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。

用双机高可用集群还是使用负载均衡集群

用双机高可用集群还是使用负载均衡集群 北京麒麟博峰科技有限公司 2010年11月 1

目录 第一章问题描述 (1) 第二章基本的技术知识 (1) 2.1.HA高可用集群 (1) 2.2.Load Balance负载均衡集群 (2) 第三章该使用哪种集群 (3) I

第一章问题描述 系统工程师通常会对如何使用HA高可用集群,即“双机”,和负载均衡集群,比如KYLIN Netsphere等负载均衡设备,产生疑惑不解,通常在构筑服务器集群的时候,不合理的设计造成系统的整体效率不高、设备浪费或者维护的不便利,本文试图用最简单的方式解惑。 要解决这些问题,不惑者需要正确自我解答以下问题: 1.系统的并发是否是考虑的主要问题之一? 2.以后并发用户会不会急剧增长? 3.运营的软件是否是一个标准的三级架构或者多级架构(N-Tier)? 4.运营的软件的端口是否对应不同的业务? 5.不同的业务软件是否运行在不同的服务器设备上? 6.资金是否成为问题? 第二章基本的技术知识 2.1 HA高可用集群 HA(单字母发音, H A 不是“哈”)高可用集群主要是为了“保护”“特定资源”所开发的一种集群技术,这里所说的“特定资源”包含以下内容: 1)进程; 如果进程被杀死,即从系统角度上看,该进程没有了,那么,HA可以及时发现,并在 另外一个地方将部署好的进程启动;如果该进程僵死,即不工作了,可能由于软件设计 的不好,出现了死循环或者其他原因,但该进程还存在,这时HA是不能发现的,所以,有时候即使进程不响应了,HA并没有切换; 解决这个问题,只能依靠应用软件提供监控接口,并将该接口公布给HA开发商。我们 在市场中发现有些厂商的基于数据库的特别好使,有些公司的产品出现同样状况时却像 傻子一样,这个可能是不同的HA厂商和数据库厂商合作的深浅度有关。 2)网卡; 如果网卡完全挂掉,HA是可以发现并采用行动,但是工作的不正常,这种情况HA可 能不能发现,尤其是抖动的情况发生; 3)存储; 1

Web服务器集群负载均衡技术的应用与研究

Web服务器集群负载均衡技术的应用与研究 侯秀杰祝永志孔令鑫 (曲阜师范大学计算机科学学院,山东日照 276826 ) 摘要为了提高集群系统对用户的快速响应与整体吞吐量,必须采取一定的策略将Web访问均衡地分配到集群中的每一个服务器。基于此思想本文针对传统的单机思想给出了一种多机三层结构的负载均衡系统。实验结果表明了它在负载均衡方面的优越性。 关键词负载均衡;均衡策略;调度算法;Web服务器集群模型 1 引言 Internet的快速增长,特别是电子商务应用的发展,使Web应用成为目前最重要最广泛的应用,Web 服务器动态内容越来越流行。目前,网上信息交换量几乎呈指数增长,需要更高性能的Web服务器提供更多用户的Web服务,因此,Web服务器面临着访问量急剧增加的压力,对其处理能力和响应能力等带来更高的要求,如果Web 服务器无法满足大量Web访问服务,将无法为用户提供稳定、良好的网络应用服务。 由于客观存在的服务器物理内存、CPU 处理速度和操作系统等方面的影响因素,当大量突发的数据到达时,Web服务器无法完全及时处理所有的请求,造成应答滞后、请求丢失等,严重的导致一些数据包因延时而重发,使传输线路和服务器的负担再次增加。传统的方法是提高Web 服务器的CPU 处理速度和增加内存容量等硬件办法但无论如何增加Web 服务器硬件性能,均无法满足日益增加的对用户的访问服务能力。 面对日渐增加的Web 访问服务要求,必须对Web 服务器按一定策略进行负载分配。利用负载均衡[1]的技术,按照一定策略将Web 访问服务分配到几台服务器上,负载处理对用户透明,整体上对外如同一台Web 服务器为用户提供Web服务。 2 Web负载均衡结构 2.1 负载均衡 负载是一个抽象的概念,是表示系统繁忙程度,系统在一段时间空闲,该系统负载轻,系统在一段时间空忙,该系统负载重,影响系统负载的各种因数较多如果存在很多的数据包同时通过网络连向一台Web 服务器,也就是网络的速度比网络所连接的设备速度快的情况下,系统负载不断增加,直到最大。 目前提高Web 服务器性能,使其具有较强负载能力,主要有两种处理思想[2]: 1)单机思想 不断升级服务器硬件性能,每当负载增加,服务器随之升级。这随之将带来一些问题,首先,服务器向高档升级,花费资金较多;其次,升级频繁,机器切换造成服务中断,可能会导致整个服务中断;最后,每种架构的服务器升级总有一个极限限制。 2)多机思想 使用多台服务器提供服务,通过一定机制使它们共同分担系统负载,对单一的服务器没有太高的性能要求,系统负载增加,可以多增加服务器来分担。对用户而言,整个系统仿佛是一台单一的逻辑服务器,这样的系统能够提供较强的可扩展性和较好的吞吐性能。 为了适应当前急剧增长的Web访问,有别于传统的单机思想,解决单机思想带来的一系列问题,本文提出了一种基于权值的策略分配负载。 2.2 负载均衡实现设备[2]

集群HA负载均衡技术

集群、双机、负载均衡、HA、HPC、NLB 1.1什么是集群 简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。 一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他/她们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和删改集群系统的节点。 1.2 集群系统的主要优点: (1)高可扩展性: (2)高可用性HA:集群中的一个节点失效,它的任务可传递给其他节点。可以有效防止单点失效。 (3)高性能:负载平衡集群允许系统同时接入更多的用户。 (4)高性价比:可以采用廉价的符合工业标准的硬件构造高性能的系统。 2.1 集群系统的分类 虽然,根据集群系统的不同特征可以有多种分类方法,但是一般把集群系统分为两类: (1)、高可用(High Availability)集群,简称HA集群。 这类集群致力于提供高度可靠的服务。就是利用集群系统的容错性对外提供7*24小时不间断的服务,如高可用的文件服务器、数据库服务等关键应用。 负载均衡集群:使任务可以在集群中尽可能平均地分摊不同的计算机进行处理,充分利用集群的处理能力,提高对任务的处理效率。 在实际应用中这几种集群类型可能会混合使用,以提供更加高效稳定的服务。如在一个使用的网络流量负载均衡集群中,就会包含高可用的网络文件系统、高可用的网络服务。 (2)、性能计算(High Perfermance Computing)集群,简称HPC集群,也称为科学计算集群。 在这种集群上运行的是专门开发的并行应用程序,它可以把一个问题的

轻松实现windows平台Apache,Tomcat集群和负载均衡

轻松实现windows平台Apache,Tomcat集群和负载均衡 0,环境说明 Apache :apache_2.0.55 1 个 Tomcat: apache-tomcat-5.5.17 (zip版) 2个 mod_jk:: mod_jk-apache-2.0.55.so 1个 第一部分:负载均衡 负载均衡,就是apache将客户请求均衡的分给tomcat1,tomcat2....去处理 1.安装apche,tomcat https://www.wendangku.net/doc/f510777726.html,/ 下载Apache 2.0.55 https://www.wendangku.net/doc/f510777726.html,/download-55.cgi 下载tomcat5.5 zip版本(解压即可,绿色版) https://www.wendangku.net/doc/f510777726.html,/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.15/ 下载mod_jk,注意和apache版本匹配 按照jdk,我的路径为:E:\ide\apache\Apache2 解压两份Tomcat, 路径分别为E:\ide\tomcat1,E:\ide\tomcat2 下载mod_jk

2.修改Apache配置文件http.conf 在apache安装目录下conf目录中找到http.conf 在文件最后加上下面一句话就可以了

include "E:\ide\apache\Apache2\conf\mod_jk.conf" 2. http.conf 同目录下新建mod_jk.conf文件,内容如下 #加载mod_jk Module LoadModule jk_module modules/mod_jk-apache-2.0.55.so #指定workers.properties文件路径 JkWorkersFile conf/workers.properties #指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器 JkMount /*.jsp controller 3.在http.conf同目录下新建workers.properties文件,内容如下 worker.list = controller,tomcat1,tomcat2 #server 列表 #========tomcat1======== worker.tomcat1.port=8009 #ajp13 端口号,在tomcat下server.xml配置,默认8009 worker.tomcat1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址worker.tomcat1.type=ajp13 worker.tomcat1.lbfactor = 1 #server的加权比重,值越高,分得的请求越多 #========tomcat2======== worker.tomcat2.port=9009 #ajp13 端口号,在tomcat下server.xml配置,默认8009 worker.tomcat2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址worker.tomcat2.type=ajp13 worker.tomcat2.lbfactor = 1 #server的加权比重,值越高,分得的请求越多 #========controller,负载均衡控制器======== worker.controller.type=lb worker.controller.balanced_workers=tomcat1,tomcat2 #指定分担请求的tomcat worker.controller.sticky_session=1 4.修改tomcat配置文件server.xml

负载均衡的原理说明

大家都知道一台服务器的处理能力,主要受限于服务器自身的可扩展硬件能力。所以,在需要处理大量用户请求的时候,通常都会引入负载均衡器,将多台普通服务器组成一个系统,来完成高并发的请求处理任务。 之前负载均衡只能通过DNS来实现,1996年之后,出现了新的网络负载均衡技术。通过设置虚拟服务地址(IP),将位于同一地域(Region)的多台服务器虚拟成一个高性能、高可用的应用服务池;再根据应用指定的方式,将来自客户端的网络请求分发到

服务器池中。网络负载均衡会检查服务器池中后端服务器的健康状态,自动隔离异常状态的后端服务器,从而解决了单台后端服务器的单点问题,同时提高了应用的整体服务能力。 网络负载均衡主要有硬件与软件两种实现方式,主流负载均衡解决方案中,硬件厂商以F5为代表目前市场占有率超过50%,软件主要为NGINX与LVS。但是,无论硬件或软件实现,都逃不出基于四层交互技术的“转发”或基于七层协议的“代理”这两种方式。四层的转发模式通常性能会更好,但七层的代理模式可以根据更多的信息做到更智能地分发流量。一般大规模应用中,这两种方式会同时存在。 2007年F5提出了ADC(Application delivery controller)的概念为传统的负载均衡器增加了大量的功能,常用的有:SSL卸载、压缩优化和TCP连接优化。NGINX也支持很多ADC的特性,但F5的中高端型号会通过硬件加速卡来实现SSL卸载、压缩优化这一类CPU密集型的操作,从而可以提供更好的性能。 F5推出ADC以后,各种各样的功能有很多,但其实我们最常用的也就几种。这里我也简单的总结了一下,并和LVS、Nginx对比了一下。

集群之LVS(负载均衡)详解

提高服务器响应能力的方法 scale on 在原有服务器的基础上进行升级或者直接换一台新的性能更高的服务器。 scale out 横向扩展,将多台服务器并发向外响应客户端的请求。优点:成本低,扩展架构比较简单。 集群(Cluster),通俗地讲就是按照某种组织方式将几台电脑组织起来完成某种特定任务的这样一种架构。 三种集群类型: LB,Load Balancing 负载均衡:在一定程度上能够实现高可用的目的。 HA,High Availability 高可用:实时在线,能够及时响应客户端请求,企业应用要求达到 7*24小时,99.999%时间在线。 HP,High Performance 高性能提供大量超级运算能力的集群。 LB 负载均衡架构: Director(dispatcher):负责接收客户端请求,并将请求按照某种算法分发到后台真正提供服务的服务器上。既可以基于硬件(F5)来实现,也可以基于软件来实现。基于软件实现的又分为四层交换:基于IP地址和端口号组合起来对服务做重定向(LVS)。七层交换:通常指的是反向代理(proxy),例如:squid。 LVS:Linux Virtual Server 类似于iptables的架构,在内核中有一段代码用于实时监听数据包来源的请求,当数据包到达端口时做一次重定向。这一系列的工作必须在内核中实现。在内核中实现数据包请求处理的代码叫做ipvs。ipvs仅仅提供了功能框架,还需要自己手动定义是数据对哪个服务的请求, 而这种定义需要通过写规则来实现,写规则的工具就称为ipvsadm。 应用场景 高吞吐量(higher throughput) 冗余(redundancy) 适应性(adaptability) LVS负载均衡架构 Virtual IP(VIP)address:Director用来向客户端提供服务的IP地址 Real IP (RIP) address:集群节点(后台真正提供服务的服务器)所使用的IP地址 Director's IP (DIP) address:Director用来和D/RIP 进行联系的地址

websphere集群与负载均衡

Websphere集群与负载均衡

1.配置集群说明: 日常使用中为了保证websphere系统可用性,提高系统性能,一般处理方法为配置集群,本文将记录我创建、配置集群的整个过程 1)集群系统架构 操作系统: linux as4 Websphere版本 was6.1 2)系统整体架构 为了保证高可用性环境,一般使用如下拓扑: 本例中的部署如下所示:

Dm 和一个应用安装在主机itatmp3(22.5.232.195),一个应用单独安装主机名为itatmp4(22.5.232.196),组成一个集群,然后通过一个IHS 来完成负载均衡,HIS也安装在主机itatmp3 (22.5.232.195)上 注意:自己在配置请用根据自己的情况用自己的主机名与IP替换上面红色的部分 3)检查程序包及其版本 有两个程序。 C88STML.tar.gz为application server与Deployment manager的安装包 C88T0ML_WAS61ND_Supplements_Linux32B.tar.gz 包有IBM http Server与插件的安装程序 4)安装集群 (1)以下安装在itatmp3(22.5.232.195)主机上安装: 获得的WEBSPHERE 的安装包可能为C88STML.tar.gz先将其解压。 解压缩后的文件运行./launchpad.sh。 launchpad.sh启动安装界面 注意: 假如没有window-x. 就安装一个Xmanager软件 安装界面如下:

首先安装: 安装后会启动向导,提示接受协议等,并选择安装路径。选择默认路径后,进行安装,安装时会提示创建的类型

一种动态网络负载平衡集群的实践方法

一种动态网络负载平衡集群的实践方法 1.引言 本质上讲,网络负载平衡是分布式作业调度系统的一种实现。平衡器作为网络请求分配的控制者,要根据集群节点的当前处理能力,采用集中或分布策略对网络服务请求进行调配,并且在每个服务请求的生命周期里监控各个节点的有效状态。一般的说,平衡器对请求的调度具备以下的特征: ?网络服务请求必须是可管理的 ?请求的分配对用户是透明的 ?最好能够提供异构系统的支持 ?能够依据集群节点的资源情况进行动态分配和调整 ?负载平衡器在集群的各个服务节点中分配工作负载或网络流量。可以静态预先设置或根据当前的网络状态来决定负载分发到哪个特定的节点,节点在集群内部可以互相连接,但它们必须与平衡器直接或间接相连。 网络平衡器可以认为是网络层次上的作业调度系统,大多数网络负载平衡器能够在网络的相应层次上实现单一系统映像,整个集群能够体现为一个单一的IP地址被用户访问,而具体服务的节点对用户而言是透明的。这里,平衡器可静态或动态配置,用一种或多种算法决定哪个节点获得下一个网络服务请求。 2.网络平衡原理 在TCP/IP协议中,数据包含有必要的网络信息,因而在网络缓存或网络平衡的具体实现算法里,数据包的信息很重要。但由于数据包是面向分组的(IP)和面向连接的(TCP),且经常被分片,没有与应用有关的完整信息,特别是和连接会话相关的状态信息。因此必须从连接的角度看待数据包——从源地址的端口建立到目的地址端口的连接。 平衡考虑的另一个要素就是节点的资源使用状态。由于负载平衡是这类系统的最终目的,那么及时、准确的把握节点负载状况,并根据各个节点当前的资源使用状态动态调整负载平衡的任务分布,是网络动态负载平衡集群系统考虑的另一关键问题。 一般情况下,集群的服务节点可以提供诸如处理器负载,应用系统负载、活跃用户数、可用的网络协议缓存以及其他的资源信息。信息通过高效的消息机制传给平衡器,平衡器监视所有处理节点的状态,主动决定下个任务传给谁。平衡器可以是单个设备,也可以使一组平行或树状分布的设备。 3.基本的网络负载平衡算法 平衡算法设计的好坏直接决定了集群在负载均衡上的表现,设计不好的算法,会导致集群的负载失衡。一般的平衡算法主要任务是决定如何选择下一个集群节点,然后将新的服务请求转发给它。有些简单平衡方法可以独立使用,有些必须和其它简单或高级方法组合使用。而一个好的负载均衡算法也并不是万能的,它一般只在某些特殊的应用环境下才能发挥最大效用。因此在考察负载均衡算法的同时,也要注意算法本身的适用面,并在采取集群部署的时候根据集群自身的特点进行综合考虑,把不同的算法和技术结合起来使用。

Weblogic10.3.6集群负载均衡安装加调优

Weblogic10.3.6集群负载均衡安装加调优 1、集群系统架构 操作系统: linux 6.2 Weblogic版本 Weblogic10.3.6 2、系统整体架构 2.1、Weblogic方案:(建议服务器有4G以上的内存) 1台管理服务器:安装weblogic10 管理节点。 2至5台应用服务器节点:安装Weblogic10 受管节点。 1台代理服务器 2.2、本例中的部署如下所示: 管理节点安装在主机 jljygl,通过代理服务器来完成负载均衡。 3、集群的安装 3.1、安装集群的先决条件 注意,必须在每个服务器中编辑/etc/hosts文件使群集的服务器之间能够互相使用机器名访问。保证每一台应用服务器都可以使用ping 群集应用服务器名称来访问,实例文件/etc/hosts内容如下 127.0.0.1 localhost.localdomain localhost #本机 10.18.0.47 jljyqz1 #节点1 10.18.0.48 jljyqz2 #节点2 10.18.0.49 jljyqz3 #节点3 10.18.0.50 jljyqz4 #节点4 10.18.0.51 jljygl #管理 192.168.1.8 jljyzhdb1 #数据库1 192.168.1.9 jljydb2 #数据库2 以 root 用户身份登录并在每个主机上配置 Linux 内核参数。 cat >> /etc/sysctl.conf >>EOF kernel.shmall = 2097152 kernel.shmmax = 4294967295 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536

windows负载均衡集群

一、简单介绍Windows2003服务器集群及相关术语 它是一组协同工作并运行Microsoft群集服务(MSCS)的独立服务器。其为资源和应用程序提供高可用性、故障恢复、可伸缩性和可管理性。 服务器群集无法保证无间断运作,但是确实能够为多数关键任务应用程序提供足够的可用性。群集服务可以对应用程序和资源进行监控,并能够自动识别和恢复众多故障状况。这为在群集中管理工作负荷提供了灵活性。另外,还提高了整个系统的可用性。 一般地,利用服务器群集技术可实现DHCP、文件共享、后台打印、MS S QL Server、Exchang Server等服务的可靠性。 支持服务器群集技术的Windows2003版本 Windows Server2003企业版(Enterprise Edition) Windows Server2003 Datacenter Edition 资源组是指群集服务作为一个逻辑单元进行管理的资源集合。通过将逻辑上相关的资源分成资源组,可以非常容易地管理应用资源和群集实体。对资源组执行群集服务操作时,操作对于该组内包含的各个资源都有效。通常来说,创建资源组的目的是为了将特定应用程序服务器和客户端正常使用该应用程序而所需的全部元素都包括在一起。 群集用户帐户群集服务需要一个属于可运行群集服务的每个节点上的本地管理员(Local Administrators)组成员的域用户帐户。因为安装需要用户名和密码,所以该用户帐户必须在配置群集服务前予以创建。该用户帐户只能专门用于运行群集服务,而不能属于个人。注意:群集服务帐户不需要一定是域管理

员(Domain Administrators)组的成员。基于安全原因,建议不要授予群集服务帐户域管理员权利。 共享存储设备(仲裁磁盘)Win2003服务器模式有3种,本实验是用单仲裁设备集群模式,主要应用于位于群集存储设备上的高可用性的应用程序上。仲裁磁盘(quorum disk)用于存储群集配置数据库检查点以及协助管理群集和维持一致性的日志文件。仲裁磁盘故障可能导致整个群集失效;所以,强烈建议您使用硬件RAID阵列上的一个卷。除了进行群集管理外,不要使用仲裁磁盘执行其它任务。 仲裁资源在群集运作中扮演着关键的角色。在每个群集中,一个单一的资源被分配作为仲裁资源。仲裁资源可以是具备下列功能的任何物理磁盘(Physi cal Disk)资源: (1) 将群集注册表复制到服务器群集中的其它节点上。在每个节点上,群集注册表默认保存在:%SystemRoot%\Cluster\Clusdb。而后,群集注册表被复制到仲裁驱动器的MSCS\Chkxxx.tmp文件中。这些文件互为副本。MSCS\Qu olog.log文件是一个维持记录所有针对检查点文件的更改的事务日志。这意味着,脱机的节点可以在重新加入群集时追加这些更改。 (2) 如果群集节点间失去了通信,质询响应协议将启动以防止出现“裂脑”状况。在这种情况中,仲裁磁盘资源的所有者变成群集及所有资源的唯一所有者。所有者随之为客户端提供资源。当拥有仲裁磁盘的节点不正确地运作时,正常的节点将通过仲裁获得设备的所有权。在群集服务安装过程中,您必须为仲裁磁盘提供驱动器盘符。常用的标准盘符为“Q”,本例中亦采用“Q”盘符。

集群之负载均衡集群(LVS)

集群(一)之 负载均衡集群(LVS) ipvsadm(1.0版本) 定义 这是一个由国人主持的项目。它是一个负载均衡/高可用性集群,主要针对大业务量的网络应用(如新闻服务、网上银行、电子商务等)。 LVS是建立在一个主控服务器(通常为双机)(director)及若干真实服务器(real-server)所组成的集群之上。real-server负责实际提供服务,主控服务器根据指定的调度算法对real-server进行控制。而集群的结构对于用户来说是透明的,客户端只与单个的IP(集群系统的虚拟IP)进行通信,也就是说从客户端的视角来看,这里只存在单个服务器。Real-server可以提供众多服务,如ftp, http, dns, telnet, nntp, smtp 等。主控服务器负责对Real-Server进行控制。客户端在向LVS发出服务请求时,主控服务器(Director)会通过特定的调度算法来指定由某个 Real-Server来应答请求,而客户端只与Load Balancer的IP(即虚拟IP,VIP)进行通信. 客户端发出服务请求→主控服务器接受请求→指定某个real-server来应答请求(之间的通讯是通过虚拟IP来进行传递) 二、集群采用三层结构 一般来说,LVS集群采用三层结构,其主要组成部分为: A、负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的请求按照一定的算法分发到下一层不同的服务器进行处理,自己本身不做具体业务的处理。而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的。这是LVS的核心部分,另外该层还可用监控下一层的状态,如果下一层的某台服务器不能正常工作了,它会自动把其剔除,恢复后又可用加上。该层由一台或者几台Director Server组成。 B、服务器池(server pool),是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。 C、共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易

相关文档
相关文档 最新文档