服务器集群测试文档

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

服务器集群实现和测试

测试环境:windwos 64位系统

测试内容:Apache服务器做反向代理以实现集群的负载均衡,Tomcat做服务器集群,并用Memcach实现集群内的Session共享

测试工具:Apache2.2,Tomcat7.0.54,memcached 1.4

一.软件准备

首先是下载Apache2.2版本,可以去/download.cgi下载。

注意,该网页上的是下载unix版本的,因此我们需要找到windows版本的下载位置。

依次点击Other files-->binaries-->win32 选择no ssl.msi进行下载。

下载完成之后,安装即可。安装完成之后,可以在系统服务中看到Apache2.2

为了测试是否安装成功,可以在浏览器地址栏输入localhost,看到以下界面,则说明是安装成功了。

接着是下载tomcat,然后将下载的压缩包解压,并复制两份,分别命名为tomcat1和tomcat2,这是作为tomcat集群使用。为了方便配置,可以将其放在与Apache 同一个文件目录下。

使用Tomcat的时候,需要注意的是要配置JAVA环境,要配置JAVA_HOME和CLASSPATH系统环境变量。

二.Apache配置

Apache 2.2集成了mod_jk功能,相对较早版本,不需要再进行繁琐的worker.properties配置,配置过程大幅简化。

首先找到Apache2.2\conf文件夹下的httpd.conf文件,打开并找到

将图中几行代码前面的注释(也就是代码之前的“#”)去掉,作用是使Apache

在启动时自动加载代理(proxy)模块。

继续下拉文档找到Include conf/extra/httpd-vhosts.conf,去掉前面的注释符。

用文本编辑器打开conf/extra/httpd-vhosts.conf,配置虚拟站点,在最下面

加上

这里balancer://是告诉Apache需要进行负载均衡的代理,后面的cluster

是集群名,可以随意取,两个日志引擎ErrorLog负责记录错误,CustomLog负

责记录所有的http访问以及返回状态,日志名可以自己取,这里取为lbtest。httpd-vhosts.conf配置完毕,回到httpd.conf,在文档最下面加上

ProxyRequests Off 是告诉Apache需要使用反向代理(利用Apache进行负载均衡必须使用反向代理), 用于配置工作在tomcat集群中的所有节点,这里的"cluster"必须与上面的集群名保持一致。

Apache通过ajp协议与tomcat进行通信,ip地址和端口唯一确定了tomcat 节点和配置的ajp接受端口。loadfactor 是负载因子,Apache会按负载因子的比例向后端tomcat节点转发请求,负载因子越大,对应的tomcat服务器就会处理越多的请求,如两个tomcat都是1,Apache就按1:1的比例转发,如果是2和1就按2:1的比例转发。route参数对应后续tomcat配置中的引擎路径jvmRoute。

至此,Apache的配置完成。

三.Tomcat配置

之前在文件夹已经新建了两个Tomcat服务器,保持tomcat1的配置不变,找到tomcat2目录下conf文件夹下的server.xml文件,打开并修改如下三个端口:

这是关闭端口,默认值为8005

这是侦听端口,默认值为8080

这是tomcat接收从Apache过来的ajp连接请求时使用的端口,默认值为8009

因为我们需要在一台电脑上部署两台服务器,为了避免端口冲突,所以修改服务器端口是必要的。如果服务器安装在两台不同的电脑上,则可以不修改端口号。

端口配置完毕后,需要配置route参数。打开tomcat1/conf/server.xml文件,找到

标签里添加jvmRoute,参数应当和Apache配置中httpd.conf 文件最后添加的route参数相同。这里我们根据Apache配置,将tomcat1中的

jvmRoute赋值为jvm1。同样的将tomcat2中jvnRoute参数赋值为jvm2。做这个修改则是为了实现负载均衡。

接下来,我们分别在两个tomcat里的webapps文件里新建一个news文件夹,并在里面新建index.jsp文件。编写测试代码如下:

分别重启Apache,tomcat1和tomcat2,然后在浏览器地址栏输入

http://localhost/news/index.jsp。会看到如下页面:

再次刷新页面,则会看到:

这里我们可以看到两点:

1.每次刷新页面,页面中的一串session id都会改变。因为是两台服务

器在处理请求。

2.每次刷新页面,jvm1和jvm2交替出现。事实上,jvm1和jvm2正是

我们刚才配置的集群里的两台服务器。之所以会交替出现,是因为在

Apache配置负载均衡时,我们将比例其配置为1:1,此项可在Apache

中修改。

三.Session共享

作为一个服务器集群,没有session共享显然是不行的。试想一个用户登录后,向服务器重新发送一个请求,这时若没有session共享,那么则需要一只重复登录。对于用户而言,体验会很差;而对于服务器而言,数据访问的压力会很大。此次测试,我采用了两种session共享的办法:

1.利用tomcat里自带的session复制功能,它配置简单。是以组播的方式

向集群中所有的服务器复制session。即session一旦改变,则会向急群众其他的服务器发送新的session。这样很容易会引起广播风暴。

相关文档
最新文档