锁定老帖子 主题:请教大型WEB系统的架构设计和技术选型
精华帖 (1) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2008-04-07
如果没有做过 这样 的 项目,我想你们 不会理解 为什么 要这样 做,如果 没有经历过几十台机器几分钟 内 就全部 不能 服务,我想你们 也不会了解 我们 为什么这样做了 。 dao层和 web层还有业务层 分开 的原因 ,一方面是因为 方便 维护 ,减少代码 的 修改,另一方面有安全的 原因,说一个大家 可能 知道 但是可能 也不知道 的 重要原因 吧,dao层 是放在 内网 的 ,web层放在 公网的 ,这是安全,另外就是 在内网的 dao层 就是 数据库层 ,如 oracle rac(oracle集群,可能 大家 都没用过 ,但我们在使用),还有ejb的 集群 ,其中 有loadblance的问题和 线程安全的 问题,最重要 还有licence的 问题(这也是 很重要的 ),,如果 (这也是我们使用 ejb集群的 原因,因为很难做出不使用 ejb做 群集 而又保证安全和 扩展性的 架构,因为这样可以随意 向ejb集群中增加机器,提高并发和性能),到现在本人没有发现比这个 更好的方案。如果大家有,可以交流 一下 。至于 让 spring控制事物,我们根本 不敢用 的 ,性能太差 ,hibernate也不敢用 ,没办法 保证性能 。我们的每个 sql语句都很关键的 ,举个简单 例子 ,我们的数据库 没必要 的 话是不让 更新 的 ,只能 insert记录,因为这样 的 速度更快。总之 ,有很多原因和 经验,因为做了才知道的 。不过 我们的 这种方式可能 大部分的 项目是 用不倒的。因为我们 的 行业很特殊。
|
|
返回顶楼 | |
发表时间:2008-04-08
连针对什么项目都不说,谈什么架构,架构是根据所处的环境、业务、旧有系统间的整合来综合考虑的,不是最流行的就是最好的。有人说为什么要用ejb,你用过ejb吗?知道ejb能解决多少事情吗?ejb是侵入性比较强(实现它必须要和代码结合的很紧密,很难拆分开),但是它确实是很好的解决方案。比如事务的控制,远程服务的提供等等。只是说它确实做得太大了,什么都想占全,所以导致没法收手了。可是它确实是个优秀的解决方案。hibernate针对大型系统,特别对数据库依赖性很强的系统,说实话不是很适合,例如电信。见过用的,后来因为性能问题推翻改用手写sql。针对复杂业务的系统最好少用hibernate。当然如果有高手可以用,可是你能保证100人的大型项目团队都是高手?那要多大的代价啊!!所以框架在优秀也要考虑开发成本!所以框架的选用要考虑到项目的状况、成本和后期的扩展。好像说了一堆废话,没涉及具体的技术,只是从架构设计的方面给点建议。
|
|
返回顶楼 | |
发表时间:2008-04-08
EJB2.X如果只用session bean(state less)和MDB的话,除了难写点没有所谓的说的那么不好,不要太过个人崇拜,用过了再发表意见,现在觉得社区里面对EJB的态度感觉就像对瘟神...呵呵,另外从EJB3.X开始,它的编写也是相当方便了,没有必要一定非SPRING不可,感觉没有SPRING就觉得落伍...
|
|
返回顶楼 | |
发表时间:2008-04-19
总算有了认识ejb真正威力的人,我们已经使用ejb3.0开发升级项目了,项目已经完成 ,总的说来还算不错,唯一不爽的地方,ejb3的 注解不通用,jboss和weblogic就不同,不过既然用了ejb,我想都是比较大 的 商业项目,也不会在考虑jboss了。
|
|
返回顶楼 | |
发表时间:2008-06-02
power2 写道 对于楼主的问题,以及公司的架构方案,我认为你们仍然在犯错!
误区:遇到性能问题的第一件事情就是找硬件和容器的事情! 性能问题的基本上无一例外的都出在写的程序有问题,满足不了伸缩性。 好好看看你们的程序吧,不要再给bea打电话了,你得到的建议,基本上都是用不到的。 robin的观点是对的,我甚至怀疑你们的数据库连接是否有释放问题的。 增加你们前端的内存,多做缓存。hibernate的cache方案不差jdbc对数据库的频繁使用 html的书写是否符合w3的规范 最好在一个服务器上部署整个应用! 程序有问题,是开发部的问题。我们做软件的不但得不到任何好处,还得挨批评(搞不好老板会换人); 硬件和容器有问题,是别人的问题。不但做软件的没有问题,还可以顺便捞点好处(搞不好老板还是会换人)。 所以,关键是看老板是哪一种人。蒙得了,就说容器有问题了;蒙不了,当然只能“我改”了。 |
|
返回顶楼 | |
发表时间:2008-07-08
davexin: 讨论EJB没什么意思,还不如说你花了钱,WEBLOGIC帮你做了些什么。。。。。 讨论来讨论去,简直是TOMCAT PK WEBLOGIC 期待楼主提供一份JBOSS和WEBLOGIC的对比测试报告 :) |
|
返回顶楼 | |
发表时间:2008-07-09
davexin 写道 如果 (这也是我们使用 ejb集群的 原因,因为很难做出不使用 ejb做 群集 而又保证安全和 扩展性的 架构,因为这样可以随意 向ejb集群中增加机器,提高并发和性能),到现在本人没有发现比这个 更好的方案。如果大家有,可以交流 一下 。至于 让 spring控制事物,我们根本 不敢用 的 ,性能太差
ejb集群中增加机器,能提高并发和性能是BEA的人告诉你的吧,不知道你们的采购合同中有没有说明,每增加一台机器,性能指标能提高多少? 强烈建议楼主看一遍《J2EE WITHOUT EJB》,不是要你推翻现在的架构,而是你的想法中有些结论是别人灌输的,属于想当然。 spring事务控制性能太差,请举出例子。 再提一句,利用反向代理。一样可以让tomcat放在内网中的。 还有请马上测试tomcat APR打开的情况。 |
|
返回顶楼 | |
发表时间:2008-08-16
rtdb 写道 > 大型WEB系统
没有用户量,数据量等基本信息,谈什么架构设计和技术选型 ? 没有用户量,数据量,应用领域谈什么技术选型啊? 还有,大型WEB应用居然敢用EJB?OH,NO! |
|
返回顶楼 | |
发表时间:2008-08-16
stuts、hibernate、spring不是架构,而是框架。这个框架主要用于大型项目,开发周期比较长。首先你的系统在硬件方面和数据库的使用方面来看的确算大型系统,但你的业务主要做些操作呢。如果你的业务经常进行数据库操作可以使用hibernate,否则反而会影响系统性能。至于你所说的三个数据库连接,你可以先将它们的连接信息写在连接池的配置文件中,然后,考虑连接池 在什么时候使用那个连接。具体的实现查一下hibernate连接池的相关资料吧。
|
|
返回顶楼 | |
发表时间:2008-08-27
lz说的大型是基于那么多服务器和昂贵的设备,而并不是业务吧。
|
|
返回顶楼 | |