Apache+Tomcat集群下,如何将一个通知请求发给集群下的每个tomcat呢?

Apche+Tomcat集群下,如何将一个通知请求发给集群下的每个tomcat呢?
具体为,
1. 每个tomcat启动后会加载并缓存一些数据,这些数据通过其他的途径修改, 所以对tomcat来说这些是只读的.
2. 数据变化后要通知tomcat重新加载一次.
3.通知请求到达集群后, 却被apache给"负载均衡"的分流了: 仅有一个tomcat收到了更新缓存的通知.
如何让某些特征的http请求(如:符合特定的url、符合特定的cookie等)绕过负载均衡而发给集群的每个tomcat呢? 我查了apache.org的在线文档, 没有说明这种情况该如何配置jk配置文件. 又google了一通, 发现有人在问类似的问题,但是没有人回答.
请了解这一点的大牛们不吝赐教,多谢啦。
项目中用到了dwr消息推送。而服务端是通过一个http请求后 触发dwr中的推送方法。而单个tomcat中。服务器发送的http请求和用户都在一个tomcat服务器中。这样就能精准推送到每个客户端用户 中。现在配置了apache集群后,通过负载均衡,apache把服务器的这个http请求也给分配给一个tomcat容器中。这样的话,在别的tomcat容器中的用户就接受不要消息了。有什么好的办法让这个请求分配给每个tomcat容器。

apache 可以设置tomcat session共享的。
参数:worker.controller.sticky_session

worker.controller.sticky_session=false,提交页面,将按照负载均衡的规则切换服务器,实现“完全的负载均衡”,代价是Tomcat不停交换session数据,慢;
worker.controller.sticky_session=true,提交页面将仍使用同一服务器(session建立在哪就用哪台),不能保证完完全全的负载均衡,但相对能省频繁切换服务器的代价。可能会变上面的快一些。
worker.controller.sticky_session_force=true,始终转发到session创建的服务器上。

还设有dwr好像自己实现了session,不知道能不能实现session共享。如果不行的话,不要用dwr了。
建议不要用session共享, 效率太低了,可以加一台缓存服务器来自己管理session。

说实话dwr的消息推送,其实就是客户端轮询的改进版。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-27
开一台缓存服务器(eg.redis,membercache),或在其中一台安装缓存服务器,缓存数据放到缓存服务器,web应用程序读取缓存服务器的数据。这样就不存在这个问题。只要更新缓存服务器里的数据就行了。
第2个回答  2013-09-30
理论上服务器(集群)和用户应分布在防火墙两边,建议在防火墙的服务器一侧部署消息服务(如ActiveMQ等)实现通知,消息服务仅用于服务器间信息交换,不要把面向用户的服务混淆进来。
第3个回答  2013-09-27
做的是负载均衡 为啥还发送每个tomcat 思路可能不对吧!
第4个回答  2013-09-26
具体如何配置的8406mod_jk配置文件如何详细说说674
相似回答