请问osc的负载均衡以及osc中服务器集群中session共享的设计思路,想借鉴一下,谢谢

路人甲Java 发布于 2013/04/10 12:27
阅读 262
收藏 2

@红薯 你好,想跟你请教个问题:我们公司现在需要网站做集群部署以及负载均衡,以及集群中session共享的问题,目前没有一个思路,请红薯大哥给点建议,谢谢!

加载中
0
红薯
红薯
1. oschina 没用到 session
2. OSChina 目前还没有用负载均衡,一个 tomcat 搞定
路人甲Java
路人甲Java
回复 @红薯 : 谢谢红薯大哥!
红薯
红薯
回复 @小白forever : cookie
路人甲Java
路人甲Java
那和用户相关的信息都保存在哪里了?
0
红薯
红薯
在集群环境下能不用 session 就别用,否则增加系统的复杂度
景愿
景愿
回复 @屁屁果 : +1, 没有session维持和验证数据,漏洞就放不胜防。
光石头
光石头
业务系统是很难去掉session的
lateron
lateron
+1
0
光石头
光石头
http://www.9iu.org/2011/11/25/tomcat-memcached-session-sso.html
0
baobao777
baobao777
用token吧
0
路人甲Java
路人甲Java
Jsp的session是使用bean的一个生存期限,一般为page,session意思是在这个用户没有离开网站之前一直有效,如果无法判断用户何时离开,一般依据系统设定,tomcat中设定为30分钟.
我们使用session功能,可以达到多个jsp程序从操作同一个java bean,那么这个java bean可以作为我们传统意义上的"全局变量池".(在java中我们可以使用static 静态化一个变量和方法,使用singleton唯一化对象.)
在项目实践中,我们Jsp程序中很多参数需要从数据库中读取,有的参数实际读取一次就可以,如果设计成每个用户每产生一个页面都要读取数据库,很显然,数据库的负载很大,同时也浪费时间,虽然可能有 数据库连接池优化,但是尽量少使用数据库是我们编程的原则.
JSP使用一个叫HttpSession的对象实现同样的功能。HTTPSession 是一个建立在cookies 和URL-rewriting上的高质量的界面。Session的信息保存在 服务器端,Session的id保存在客户机的cookie中。事实上,在许多 服务器上,如果 浏览器支持的话它们就使用cookies,但是如果不支持或废除了的话就自动转化为URL-rewriting,session自动为每个流程提供了方便地存储信息的方法。
Httpsession具有如下API:
getId 此方法返回唯一的标识,这些标识为每个session而产生。当只有一个单一的值与一个session联合时,或当日志信息与先前的sessions有关时,它被当作键名用。
GetCreationTime 返回session被创建的时间。最小单位为千分之一秒。为得到一个对打印输出很有用的值,可将此值传给Date constructor 或者 GregorianCalendar的方法setTimeInMillis.
GetLastAccessedTime 返回session最后被客户发送的时间。最小单位为千分之一秒。
GetMaxInactiveInterval 返回总时间(秒),负值表示session永远不会超时。
getAttribute 取一个session相联系的信息。(在jsp1.0中为 getValue)
Integer item = (Integer) session.getAttribute("item") //检索出session的值并转化为整型
setAttribute 提供一个关键词和一个值。会替换掉任何以前的值。(在jsp1.0中为putValue)
session.setAttribute("ItemValue", itemName); // ItemValue 必须不是must简单类型
在应用中使用最多的是getAttribute和setAttribute.现以一个简单的例子来说明session的应用,test1.jsp(信息写入session),test2.jsp(从session读出信息)。
test1.jsp
<HTML>
<HEAD>
<TITLE> Document </TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<%
session.setAttribute("str",new String(“this is test”));
%>
</BODY>
</HTML>
test2.jsp
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<%
String ls_str=null;
ls_str=(String)session.getAttribute("str");
out.println(“从session里取出的值为:”+ls_str);
%>
</BODY>
</HTML>
返回顶部
顶部