论坛首页 Java企业应用论坛

基于nginx的tomcat负载均衡和集群(超简单)

浏览 181763 次
精华帖 (15) :: 良好帖 (13) :: 新手帖 (8) :: 隐藏帖 (1)
作者 正文
   发表时间:2010-08-11  
linliangyi2007 写道
对session同步的必要性和性能表示极大怀疑,试过几千人同时在线的情况吗?!

如果不做session同步,就必须解决访问粘滞的问题,否则用户状态难以可靠的维持或安全的验证。
顺便说一下,如果是Apache+php做后端,利用php中的回调功能,session可以持久到数据库中,也能达到session同步的效果。
0 请登录后投票
   发表时间:2010-08-11  
strongkill 写道
192.168.1.11和192.168.1.101,有通信的嗎?

如果沒有,192.168.1.11突然down了,正在訪問的用戶如何處理??

这位仁兄提出的问题是HA的问题,不是负载均衡的问题,请不要把这两个概念搞混。
0 请登录后投票
   发表时间:2010-10-12   最后修改:2010-10-12
请问楼主,你做tomcat集群时,session同步了没有啊?我用apache+tomcate+msm,使用是session粘住模式。关掉其中一个tomcat再点击页面功能,会话丢失,也就是说session没有同步。不知道楼主是否解决这个问题?
0 请登录后投票
   发表时间:2010-10-12  
不知道你的方案是怎么样。但我的方法是不需要同步的,所有SESSION都统一保存的MSM中,共享SESSION,不需要从一台TOMCAT COPY到另一台。
0 请登录后投票
   发表时间:2011-03-09  
我用lz方法在tomcat-6、nginx-0.8.51
memcache-session-manager用的lz给出的jar包,测试session不能及时共享,tomcat重启时才行。
请问下lz配置成功的环境是什么?是否是tomcat6?
0 请登录后投票
   发表时间:2011-03-18  
sunnyfun 写道
楼主有没有遇到这种情况:
使用 memcached-session-manager 后,tomcat之间的session值只会在第一次同步,当一个tomcat的session值变掉的话,不会同步到另一台

简单的两个测试页面:
set.jsp
引用

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>set page</title>
</head>
<body>

<br/>

<%
session.setAttribute("id", request.getParameter("id"));
%>

<%
System.out.println("set id to " + request.getParameter("id"));
%>

set id to <%=request.getParameter("id")%>

</body>
</html>


get.jsp
引用

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>get page</title>
</head>
<body>
get id is
<%=session.getAttribute("id")%>
<%
System.out.println(session.getAttribute("id"));
%>
</body>
</html>


先对一个tomcat打开set.jsp页面,跟上参数id=1 ,即 http://.../set.jsp?id=1
然后分别打开两个tomcat的get.jsp页面,即 http://.../get.jsp
可以看到session中的值是一样的

接着再对一个tomcat打开set.jsp页面,跟上参数id=2 ,即 http://.../set.jsp?id=2
然后分别打开两个tomcat的get.jsp页面,即 http://.../get.jsp
可以发现一个输出的是1,一个输出的是2

请问这种情况如何解决?


大哥 看看主题 你这完全违背了楼主的意思 都用memcached缓存了 都是在它上面取 怎么就不一致了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics