用Apache + Imart(Resine) + RAC做集群实验

用Apache + Imart(Resine) + RAC做集群实验

蒋彪@南京 2011-11-15

1. 前言

目前的项目越做越大。进项目的测试人员也越来越多。

最早的将DB和AS部署在一台2G内存的机器上已经吃不消了。

而公司也没有多余的好机器。为此,我决定尝试做集群环境。

2. 集群所需资源

我考虑用如下图制作集群架构

用Apache + Imart(Resine) + RAC做集群实验

简单的说起来,

1. 前端http服务器我考虑用Apache 2.2来使用,性能稳定并且开源

2. LoadBlance最好的还是用LVS。 不过,因为我们这次的AS本身已经提供了round robin的功能。所以方便期间,我没有再新设。

3. AS,这次客户选用的是imart,一个基于resine的应用服务器。我分别部署了两台。

4. DB,我找了两台很烂的机器做rac.

综上所述,我所需要的资源是:一台2G用来做前台服务器,两台2G用来做AS集群,两个2G用来做RAC

3. 集群安装的顺序

首先先安装imart到两台AS上,然后分别修改imart的http.xml文件如下:


同时,为了session的共享。放开以下的配置:

 
注意,imart的集群之间是通过DB来共享session。所以需要为session专门建个DB
2. 接着安装Apache和imart的WebConnector
Imart的WebConnector是类似于LVS的loadBlancer工具。不过他的分发是根据时间段,而没有那么复杂的配置可能。
Apache2.2安装完成之后,要在httpd.conf中如下追加:
3. RAC的安装
由于这里的网络教程很多,就不多说了。
有关于RAC的AS设定如下,在imart的http.xml中如下修改:

4.集群中的session failvor

Imart集群中对session failvor的方法是在DB中存一个表:
Imart会定时的的保存session数据到这个表中,当一台机器挂掉的时候,别的机器就会自动去找session消息,然后接着操作。
 

不过缺点是,这个表的数据需要自己手动清空。

5. 其他补充

为了自动同步和发布基线库的代码,我还写了一个同步工具。从SVN的指定分支上拉代码部署编译上线

为了方便测试人员监控系统,我用了Splunx来监控所有AS上的日志。

这样搞完,基本上算是搞出了个能够模拟真实环境的可负载的高强度测试环境。

你可能感兴趣的:(apache)