论坛首页 Java企业应用论坛

基于mod_proxy+Apache 2.2.16+Tomcat 7的负载均衡与集群配置

浏览 45140 次
该帖已经被评为精华帖
作者 正文
   发表时间:2010-09-07  
yangguo 写道
很好的帖子。楼主有心,休假还不辞劳苦为大家扫盲,精神可嘉啊。

哈哈,喝多五粮液了,没办法,被休假,没钱拿。还被领导说了,没事请什么假,以为我去面试什么的。
0 请登录后投票
   发表时间:2010-09-07  
关于tomcat的集群论坛里大概能找出10篇文章,
之所以我对帖子产生了兴趣是因为在开篇背景资料中你提到了高可用性及7*24小时之类的字眼,很遗憾之后的内容并无新意。
你说的没错,apache前面可以在放个apache做集群,前面还可以再放个apache做集群,这样绝对能实现高可用性。

0 请登录后投票
   发表时间:2010-09-07  
楼主能不能给个用cache的例子啊。
0 请登录后投票
   发表时间:2010-09-07  
楼主帖子很好,很用心,觉得不满足自己要求的人不要说风凉话了,楼主有探索精神奉献,你干嘛不去探索一下呢,投精
0 请登录后投票
   发表时间:2010-09-07  
在才是好的技术文章。
0 请登录后投票
   发表时间:2010-09-07  

所以我觉得"session复制"这样的,其实已经不太算是"负载平衡"的范畴了,更应该算在"可靠性"的范畴里.

至于Cache Session, 虽然经常听Memcache 但是实际中也没用过.我是在想,如果是集中式的Session管理,那就是说需要自己实现Session机制了? 这应该也涉及一个Web服务器支持不支持外部Session的问题吧.
以tomcat为例,不知哪位做过相关内容的朋友能说明一下如何配置?
1 请登录后投票
   发表时间:2010-09-07   最后修改:2010-09-07
JE帐号 写道

所以我觉得"session复制"这样的,其实已经不太算是"负载平衡"的范畴了,更应该算在"可靠性"的范畴里.

至于Cache Session, 虽然经常听Memcache 但是实际中也没用过.我是在想,如果是集中式的Session管理,那就是说需要自己实现Session机制了? 这应该也涉及一个Web服务器支持不支持外部Session的问题吧.
以tomcat为例,不知哪位做过相关内容的朋友能说明一下如何配置?

1.是我文章写得不够清楚吗?我没说session复制是负载均衡呀。负载均衡是apche和mod_proxy做的,tomcat做的是集群,也就是你理解的session复制。
2.说实话我也没亲自搞过MemCached,不过我们以前有个项目做过,是另外的同事配的。用的是MemCached+cookie的方法,然后在web.xml里配个filter,把session保存到memcached中。至于自已实现就不必了吧,有不少开源的产品。
3.等哪个周末有空,我把以前工程的memcache session的实现及配置整理一下,写篇文章,和大家分享。
4 请登录后投票
   发表时间:2010-09-07  
每天多少查询请求或者访问量需要这样的配置,3万独立IP??
0 请登录后投票
   发表时间:2010-09-08  
个人感觉非常好的文章,我也打算将我们的系统这样整一下。
0 请登录后投票
   发表时间:2010-09-08  
peterwei 写道
zzy9zzy 写道
JE帐号 写道
一直觉得,既然系统都需要搞负载均衡了,却还要搞Session复制,是有些矛盾的选择.适用于这个做法的场景应该是客户请求比较耗CPU,但是实际请求数量并不大的情况吧.

第三点"基于Cache的集中式Session",具体是指什么?


Session复制与负载均衡关系不大,主要是为了实现失败转移的,当一个服务器坏了的时候自动将客户请求转移到另外一个服务器。

“基于Cache的集中式Session”,我大概理解就是类似用Memcache集中管理Session的做法,这样做可以提高集群效率,便于失败转移的实施。

1.session复制是为了高可用性,就是解决fail-over的情况,而负载均衡是为了分担服务器的压力。
2.session复制的方式性能较差,一般适合于企业内部应用,就是简单的双机,多机互备的需要。不大适合于大型互联网应用集群。而session sticky的方式无法保证fail-over.所以有了集中式的Cache Session,用来代替本地Session.也就是将session集中到一台/一组独立的session服务器上,确保应用服务器无状态,是一种不错的实现应用服务器水平扩展的方法。比如楼上说的用MemCached,其本身(Session服务器)也是支持水平扩展的。

 

用Memcached集中管理Session方式虽然比这种复制session更高效,但如果memcached运行在单台机器上时,如果该机器挂掉,系统所有的登录用户将会变成未登录状态,所以要处理好这种可能发生的突发灾难。可以通过memcached集群,通过session备份的方式解决。

0 请登录后投票
论坛首页 Java企业应用版

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