注:1.apache+resin做负载均衡是可以的.
但是如果涉及到session同步的话只能使用resin的专业版(加了pro的).
2.配置的方法还有很多,这里只提供一种可行性方案.
3.笔者也是在学习之中,贴出文章和大家讨论,如果有什么地方不对,希望大家积极批评.
=========================================================
一.预期目标.
同一服务其上上面部署两个resin,通过apache做跳转转发请求,两个resin服务器进行负载均衡.,从而加大平台的应答能力.
二.resin配置.(拿到resin3.1.6的pro版,如果是想练手的朋友,可以先到网上下载一个破解版的来练习一下.)
进入配置文件resin.conf
1.进入配置文件resin.conf 找到"<!-- define the servers in the cluster -->"这样一段.
修改为
<server id="web-a" address="127.0.0.1" port="6801" />
<server id="web-b" address="127.0.0.1" port="6802" />
<!--
-- address即为resin服务器所在的IP地址,后面的port是apache转发请求将要使用的端口号,保证端口畅通.
-- 两台resin服务器都是如此配置
-->
2.在你的web-app里面添加:
<session-config>
<use-persistent-store/>
<save-only-on-shutdown/>
</session-config>
<!--
-- use-persistent-store 此标识表示该项目采用的session持久化技术.
-- save-only-on-shutdown配合session持久化,指定session保存,复制机制,
-- 当前表示当服务down掉了才会执行session的保存和复制.
-- 其他的模式还有:
-- always-load-session,always-save-session等
-- 通过如此配置达到session同步的效果,当然也牺牲了不少性能
-->
三.apache配置
打开apache的配置文件httpd.conf
1.去掉"#NameVirtualHost *:80"前面的"#",打开虚拟主机监听.
2.在最后面添加模块mod_caucho.dll.
写法如下:
LoadModule caucho_module D:/110ForResinGroup/resin-3.16pro_server1/win32/apache-2.0/mod_caucho.dll
从目录中可以看出mod_caucho.dll模块已经被放到resin里面了,我们要做的只是讲路径指向那里
3.在最后面加上如下这段
<VirtualHost *:80>
#这里面的ip和port是和resin.conf配置文件一致的.
ResinConfigServer 127.0.0.1 6801
ResinConfigServer 127.0.0.1 6802
AddHandler caucho-request jsp
<Location /caucho-status>
SetHandler caucho-status
</Location>
<Location />
SetHandler caucho-request
</Location>
CauchoStatus yes
</VirtualHost>
============================================================================
到这里集群就配置完毕了.
但是要考虑一个问题:
如果用了二级缓存的话,要考虑二级缓存的同步问题,我的工程使用了ehcache作为二级缓存.
集体的ehcache的二级缓存集群配置可以在我之前的博文中找到,这里就不再详细介绍了.
同时视工程的大小,集群服务器的多少可以考虑使用memcache用来做二级缓存.
最后就是调试过程中,可以打开resin里面自带的"resin-admin"--服务器监视器.可以观察工程是否良好运行.
到这里apache+resin集群整合就结束了,有什么写的不对的地方希望大家及时提醒,我会在第一时间修改.