论坛首页 Java企业应用论坛

探讨一个可能的大访问量交易网站的开发注意事项

浏览 14346 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-02-10  
最近要开发一个与拍卖有关的大访问量交易网站。一直做电子政务,对这方面没有任何经验。一开始考虑用php,mysql开发,后来由于觉得和交易相关,数据的一致性和安全一定很重要,最后考虑用java开发。
我不清楚在做这个开发时和平时相比有哪些需要注意的地方,我想到的有:
1.webwork+spring+hibernate这种组合方式是否可行。据说tobao用了ejb,虽说个人并未觉得ejb哪点好,但别人    既然用了就肯定有它的一定道理;
2.数据的缓存肯定是必须的,但哪些是最需要被缓存的数据?
3.dba肯定需要,在没有dba的情况下,涉及数据库时应该注意什么;
4.这样的一个系统,它的性能肯定非常主要。它最有可能的瓶颈会发生在什么地方?
5.我们的理想工期会有多长,3到5个开发人员。
6.jms远程异步调用的支持。
目前想到的大概这些,希望有经验的朋友给些建议。我对这个项目目前还没有很大的把握。
   发表时间:2007-02-10  
ronghao 写道
最近要开发一个与拍卖有关的大访问量交易网站。一直做电子政务,对这方面没有任何经验。一开始考虑用php,mysql开发,后来由于觉得和交易相关,数据的一致性和安全一定很重要,最后考虑用java开发。
我不清楚在做这个开发时和平时相比有哪些需要注意的地方,我想到的有:
1.webwork+spring+hibernate这种组合方式是否可行。据说tobao用了ejb,虽说个人并未觉得ejb哪点好,但别人    既然用了就肯定有它的一定道理;
2.数据的缓存肯定是必须的,但哪些是最需要被缓存的数据?
3.dba肯定需要,在没有dba的情况下,涉及数据库时应该注意什么;
4.这样的一个系统,它的性能肯定非常主要。它最有可能的瓶颈会发生在什么地方?
5.我们的理想工期会有多长,3到5个开发人员。
6.jms远程异步调用的支持。
目前想到的大概这些,希望有经验的朋友给些建议。我对这个项目目前还没有很大的把握。


1.ejb不太了解 但是据说一般用在大型应用
2.就拍卖网站而言 首页 还有一级页面都应该考虑数据缓存
3.很难想象一个访问量比较大的网站没有dba会是什么样子?你怎么优化你的数据库?总要有一个db方面的专家
4.多用户的并发访问某条数据
5.这个要看你的业务有多复杂 用例用多少了
6.打算用jms做什么?

0 请登录后投票
   发表时间:2007-02-10  
1 ejb,没有分布式就不要用ejb,要用ejb除非你的组员里有比较精通ejb的,否则不要选它,绝对会降低生产力
2 缓存主要在查询较多的网站的效果才比较好,如果是查询较多肯定是要缓存,但是如果用hibernate,那使用缓存就容易多了,可以直接用它的二级缓存
3 webwork+spring+hibernate这种方式肯定是可行的,但是要求你的组员至少有一个精通该组合的,遇到框架上的技术问题能够很快解决的那种
4 瓶颈主要有可能出现在hibernate的不良使用上,或者sql语句的不良使用上,再者的话就是对java的不良使用,就算不是用好,用的一般也应该不会出现什么性能问题,尤其是hibernate,如果组员中没有一个精通hibernate,千万不要用,要的精通,不是说写过crud的那种,要熟知hibernate的原理,优缺点,最佳实践的那种。否则请选择ibatis
0 请登录后投票
   发表时间:2007-02-10  
本人也比较关注,目前有这样一个需求,不同系统之间需要共享内存数据,于是有了一个想法,总结如下:
1、不同系统之间数据库级别的共享可以由数据库实现;
2、不同系统之间文件级别的共享可以由共享存储来完成;
3、不同系统之间的内存级别的共享,或许对于java来说EJB是一个比较好的选择,当然也可以通过webservice实现,但是个人感觉EJB似乎更容易一些,性能也更高一些。
0 请登录后投票
   发表时间:2007-02-10  
大哥,你的经验太不够了,找个比较内行的人帮你规划下吧.
0 请登录后投票
   发表时间:2007-02-11  
呵呵 楼上的说的一点没错。这是我一个朋友的项目,他很着急,我也没有这方面的经验,所以我这里只是帮他问问:)
一直做的是程序,也没做过集群和真正意义上的架构,真是流汗啊!
ps:不知道向robbin咨询会收多少咨询费啊:)
0 请登录后投票
   发表时间:2007-02-11  
好像是每小时几(3?)K吧(他以前说的他讲课的费用  咨询他没说过  或者是我没看过)

你可以给他发个短信问一下
0 请登录后投票
   发表时间:2007-02-11  
ronghao 写道
呵呵 楼上的说的一点没错。这是我一个朋友的项目,他很着急,我也没有这方面的经验,所以我这里只是帮他问问:)
一直做的是程序,也没做过集群和真正意义上的架构,真是流汗啊!
ps:不知道向robbin咨询会收多少咨询费啊:)


你描述的项目状况并不是很清晰。对于自己没有把握的项目,只有一个原则:简单。

用webwork/spring/hiberate没有什么问题。不要用EJB。大访问量的网站尽量采用SNA架构。数据库访问一般是瓶颈,仔细规划你的数据库结构,良好的运用对象缓存,基本上就够了。

我提供项目架构解决方案,费用不是按小时计算的,你可以通过站内短信给我留联系方式,我联系你。

0 请登录后投票
   发表时间:2007-02-13  
搜了一下论坛中的帖子,大概明白了robbin所说的SNA架构。
个人理解实现起来会是这个样子:用户登陆的时候给他一个cookie,存放userId,同时给这个用户分配一个Session,存放user对象,然后把这个session保存到数据库和分布式 Cache里。黏性会话。写一个filter或者 webwork拦截器对用户请求进行拦截,如果他有cookie,但是session里面没有user对象,说明前一个节点down掉了,就根据cookie里面的userId查数据库或者是分布式 Cache获得先前保存的session,把原先的session复制到他的新session里面。这样各个节点间的 session就不用复制,因为 session是没有状态的。我们的程序对使用session不受影响,只是session里的对象要可序列化,当改变session里的对象时需要同步到cache和数据库。当然,效率的原因,session里面东西越少越好,越稳定越好。
不知道我理解的对不对?
0 请登录后投票
   发表时间:2007-02-13  
ahuaxuan 写道
1 ejb,没有分布式就不要用ejb,要用ejb除非你的组员里有比较精通ejb的,否则不要选它,绝对会降低生产力
2 缓存主要在查询较多的网站的效果才比较好,如果是查询较多肯定是要缓存,但是如果用hibernate,那使用缓存就容易多了,可以直接用它的二级缓存
3 webwork+spring+hibernate这种方式肯定是可行的,但是要求你的组员至少有一个精通该组合的,遇到框架上的技术问题能够很快解决的那种
4 瓶颈主要有可能出现在hibernate的不良使用上,或者sql语句的不良使用上,再者的话就是对java的不良使用,就算不是用好,用的一般也应该不会出现什么性能问题,尤其是hibernate,如果组员中没有一个精通hibernate,千万不要用,要的精通,不是说写过crud的那种,要熟知hibernate的原理,优缺点,最佳实践的那种。否则请选择ibatis


ejb2.x千万别用!
eib3.x可以尝试 --
|-1:名字好听,术语多,可以多要点money
|-2:可以轻,可以重,ejb3.0可以部署到web容器中,也就是你把ejb当hibernate用就可以了。但是如果要使用分布式和远程可以就一定要部署要ejb容器中,这样性能又比较糟糕了,(有可能是我个人水平问题)!
|-3:分步式事物我用的不多,只做个一个mulit db的项目,不好评论,单就远程调用web service灵活多了,测试起来也方便。RMI 并不是太方便 1:测试的时候还要把所有的防火墙停掉,程序经常性的出错。麻烦无比。有一个项目一开始我使用了RMI,但到了尾声,我宁愿换成xml-rpc了,因为我实在不敢说boss验收的时候会不会出什么问题!

引用
3 webwork+spring+hibernate这种方式肯定是可行的,但是要求你的组员至少有一个精通该组合的,遇到框架上的技术问题能够很快解决的那种
4 瓶颈主要有可能出现在hibernate的不良使用上,或者sql语句的不良使用上,再者的话就是对java的不良使用,就算不是用好,用的一般也应该不会出现什么性能问题,尤其是hibernate,如果组员中没有一个精通hibernate,千万不要用,要的精通,不是说写过crud的那种,要熟知hibernate的原理,优缺点,最佳实践的那种。否则请选择ibatis


上面的我觉得真的很好,效率,性能,扩展各方面都没有问题
0 请登录后投票
论坛首页 Java企业应用版

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