0 0

负载均衡下DWR聊天服务推送问题10

目前需要做一个在线客服聊天系统(类似WebQQ),要求具备高并发性能和及时性,目前能想到的架构是用DWR反转推送、多台tomcat部署工程以及nginx做负载均衡。通过这段时间的技术研究发现,如果所有的聊天用户(例如:A和B两个)都在同一台tomcat下聊天能很好的实现预期效果。但如果均衡后A和B用户不在同一台服务器下,则不能进行相互的消息推送。其中推送这块我用的最新版DWR的如下方法:

 

Browser.withPageFiltered(WebContextFactory.get().getScriptSession().getPage(), ScriptSessionFilter filter, Runnable task)

究其原因是由于第一个参数只能在当前服务器工程的ScriptSession对象中获取目标页面,而且filter也只能从当前服务器工程的ScriptSession中过滤出推送目标,因此不能进行跨工程的推送。

请问各位大神有没有好的解决办法和实现思路啊?小弟在此不胜感激。

2014年4月04日 15:24

4个答案 按时间排序 按投票排序

0 0

可以试一下memcached 进行session复制

2014年4月07日 22:50
0 0

openfire可以考虑下 dwr内网还能用用,外网用这个成不起来多少人

2014年4月07日 22:02
0 0

可以参考一下 memcached共享session

2014年4月07日 10:08
0 0

既然scriptSession不能跨工程访问,那就把它推送到本工程,本工程收到消息后发送请求给所需要接收的工程

2014年4月04日 15:54

相关推荐

Global site tag (gtag.js) - Google Analytics