设为首页 收藏本站
查看: 852|回复: 0

[经验分享] 用Apache + Imart(Resine) + RAC做集群实验

[复制链接]

尚未签到

发表于 2017-1-11 09:10:34 | 显示全部楼层 |阅读模式
  用Apache + Imart(Resine) + RAC做集群实验

  蒋彪@南京 2011-11-15

1. 前言
  目前的项目越做越大。进项目的测试人员也越来越多。
  最早的将DB和AS部署在一台2G内存的机器上已经吃不消了。
  而公司也没有多余的好机器。为此,我决定尝试做集群环境。

2. 集群所需资源
  我考虑用如下图制作集群架构
DSC0000.gif

  简单的说起来,
  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文件如下:

<server address="127.28.1.1" id="APP:127.28.1.1:8080">
<cluster-port port="6800" secure="false"/>
<http port="8080" secure="false"/>
</server>
<server address="127.28.1.21" id="APP:127.28.1.2:8080">
<cluster-port port="6800" secure="false"/>
<http port="8080" secure="false"/>
</server>

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

<session-config>
<use-persistent-store>true</use-persistent-store>
<always-save-session>true</always-save-session>
<save-mode>after-request</save-mode>
</session-config>

注意,imart的集群之间是通过DB来共享session。所以需要为session专门建个DB
<resin:if test="${resin.professional}">
<persistent-store type="jdbc">
<init>
<data-source>jdbc/sessionDB</data-source>
</init>
</persistent-store>
</resin:if>
2. 接着安装Apache和imart的WebConnector
Imart的WebConnector是类似于LVS的loadBlancer工具。不过他的分发是根据时间段,而没有那么复杂的配置可能。
Apache2.2安装完成之后,要在httpd.conf中如下追加:
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
Alias /imart "C:/imart_web"
<Directory "C:/imart_web">
Order allow,deny
Allow from all
</Directory>
LoadModule caucho_module C:/imart_web/round_robin/win32/apache2.2/mod_caucho.dll
ResinConfigServer 172.28.1.1 6800
ResinConfigServer 172.28.1.2 6800
#<Location /caucho-status>
#  SetHandler caucho-status
#</Location>
3. RAC的安装
由于这里的网络教程很多,就不多说了。
有关于RAC的AS设定如下,在imart的http.xml中如下修改:
<database>
<jndi-name><%データソース参照名%></jndi-name>
<driver>
<type>oracle.jdbc.pool.OracleConnectionPoolDataSource</type>
<url>jdbc:oracle:thin:@(DESCRIPTION=
(ADDRESS_LIST=
(FAILOVER=ON)
(LOAD_BALANCE=ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = Node_A)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = Node_B)(PORT = 1521))
)
(CONNECT_DATA = ( SERVICE_NAME=rac ) )
)
</url>
<user>DB 接続ユーザ名</user>
<password>DB 接続ユーザのパスワード</password>
</driver>
<prepared-statement-cache-size>8</prepared-statement-cache-size>
<max-connections>20</max-connections>
<max-idle-time>30s</max-idle-time>
<ping>true</ping>
<ping-table>dual</ping-table>
<ping-interval>60s</ping-interval>
</database>
4.集群中的session failvor

Imart集群中对session failvor的方法是在DB中存一个表:
CREATE TABLE persistent_session (
id VARCHAR(64) NOT NULL,
data BLOB,
access_time int(11),
expire_interval int(11),
PRIMARY KEY(id)
)
Imart会定时的的保存session数据到这个表中,当一台机器挂掉的时候,别的机器就会自动去找session消息,然后接着操作。

  不过缺点是,这个表的数据需要自己手动清空。
  
5. 其他补充
  为了自动同步和发布基线库的代码,我还写了一个同步工具。从SVN的指定分支上拉代码部署编译上线
  
  为了方便测试人员监控系统,我用了Splunx来监控所有AS上的日志。
  
  这样搞完,基本上算是搞出了个能够模拟真实环境的可负载的高强度测试环境。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-326790-1-1.html 上篇帖子: APACHE 流量控制及连接数限制(bandwidth) 下篇帖子: Apache Tomcat配置gzip压缩(HTTP压缩)功能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表