JiveJdon Community Forums
在线572人   首页   主题表   培训咨询   标签   精华   查搜   注册    登陆 RSS
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 7 回复 / 1
 发表新帖子   回复该主题贴
sprewell8468

悄悄话
发表文章: 7
注册时间: 2008年03月19日 17:14
请教banq老师关于高负载网站的设计 2008年03月19日 17:21 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表 集群(75)      高性能(77)     
现在的应用是基于Struts+spring+hibernate, postgresql, tomcat5.5, apache2.2.
网站是一个social network, 有3个主要的应用,包括论坛,相册等。 程序基本上快出来了,是分成了4个模块交给三个公司外包做的,现在面临整合的问题,但这是次要的。
我想知道如果这个网站如果要承载大并发量的情况下(假设1万人同时在线), 应该在服务器的哪些地方做调整?应该如何做有正对性的集群或者是负载均衡。谢谢。
sprewell8468

悄悄话
发表文章: 7
注册时间: 2008年03月19日 17:14
re:请教banq老师关于高负载网站的设计 2008年03月19日 17:22 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
我点了几个google提供的广告 :)
banq

悄悄话
发表文章: 9482
注册时间: 2002年08月03日 17:08
回复:请教banq老师关于高负载网站的设计 2008年03月21日 10:10 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
服务器群的几个策略,从简单到高级
1.人为划分服务器 :大多数采取的,包括游戏网站,必须由用户自己选择哪个服务器,这是最低级朴素的。
2.负载平衡 只需要配置tomcat就可以了,程序不用动。
3.集群 需要涉及程序架构

第三种集群策略效率高,精确制导,但是你的程序架构也要有要求的,比如相册上传后放在什么地方,如果放在本地硬盘,那么在集群环境下就会有问题,除非你让几个服务器共享一个大硬盘,这带来昂贵和单点风险。

第三种集群策略有两个方向:
1. 自己动手在现有单机架构中引入分布式缓存机制。
2. 使用基于集群的技术如EJB等。


sprewell8468

悄悄话
发表文章: 7
注册时间: 2008年03月19日 17:14
回复:回复:请教banq老师关于高负载网站的设计 2008年03月21日 16:54 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
谢谢banq老师的详细讲解。
那我现在主要的问题还是数据库的集群,应用程序就采用负载均衡。 那么有没有办法让数据库做负载均衡呢?比如说不同的表存在不同的服务器里面, 然后取数据的时候分别区,写数据的时候也分别写,是不是这样就需要重构底层代码了?
关于图片的存储,是否可以单独放在一个文件服务器里面? 以后是打算迁移到amazon的s3里面,也牵涉到代码的修改。
还有一个问题是关于数据库的迁移,如果一个完整的应用程序,基于Struts_hibernate_spring,现在是基于mysql的编码,如果要完整迁移到postgresql上面(不包含任何数据),难度大吗?大概需要做什么改到。
prominent

悄悄话
发表文章: 2
注册时间: 2008年03月18日 15:06
回复:回复:回复:请教banq老师关于高负载网站的设计 2008年03月22日 16:45 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
我也遇到这种问题,我用两台服务器都装上了tomcat,用apache转发,连接到同一个数据库,当我在负载平衡的时候,老是提示登录过期,有时程序要登录好几次才可以进入,登录进去后有时操作也会提示过期,我本人猜测是负载导致session丢失,当第一次访问tomcat1时,在第二次可能不会把请求都映射到tomcat1而是tomcat2上去了,请banq老师给点建议和提示?
banq

悄悄话
发表文章: 9482
注册时间: 2002年08月03日 17:08
回复:回复:回复:请教banq老师关于高负载网站的设计 2008年03月24日 14:40 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
>那么有没有办法让数据库做负载均衡呢?写数据的时候也分别写,是不是这样就需要重构底层代码了

可以是可以,使用多个数据源datasource,使用JNDI来访问数据库。代码动得太多不好,特别是JavaEE本来就是屏蔽数据库的软件,你在程序中故意区分容易造成程序移植性不强,过分定制了,

>基于Struts_hibernate_spring,现在是基于mysql的编码,如果要完整迁移到postgresql上面(不包含任何数据),难度大吗

难度不大,SSH是屏蔽了数据库的,只要修改一下Hibernate配置就可以。

关于前面贴session失效,两种做法:
1. 使用专门的设备使得客户端和服务器粘起来,不要转发到其他tomcat
2. 凡是需要登录的使用一个servletfilter,对cookie进行查找,如果登录过,cookie有存在,让其自动登录
prominent

悄悄话
发表文章: 2
注册时间: 2008年03月18日 15:06
回复:回复:回复:回复:请教banq老师关于高负载网站的设计 2008年03月24日 16:46 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
不知道什么设备可以把客户端和服务器粘起来。
我是用apache进行配置的,里面有个配置是可以设置成粘性的,几个人访问的话没什么问题,人一多的话session就乱了
sprewell8468

悄悄话
发表文章: 7
注册时间: 2008年03月19日 17:14
回复:回复:回复:回复:请教banq老师关于高负载网站的设计 2008年03月24日 17:00 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
谢谢,那做postgresql的数据库集群,通常在代码上会有什么要求的吗?或者说SSH架构本身就能自适应这种集群环境。
这个主题有 7 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
  发贴前查询 标签列表勿重复发表问题

RSS 手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com
anti spam