锁定老帖子 主题:拟用EJB3实现一个大型在线支付系统
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-27
有思想的芦苇 写道 zuly 写道 ejb3无疑是大型应用的首选!
我也有这样的感觉,EJB3不是为中小型应用准备的东西.有空一定要好好学学,领会EJB3的剑道. 楼主准备用什么appserver? 先学习点经验. |
|
返回顶楼 | |
发表时间:2007-01-27
jamesby 写道 有思想的芦苇 写道 zuly 写道 ejb3无疑是大型应用的首选!
我也有这样的感觉,EJB3不是为中小型应用准备的东西.有空一定要好好学学,领会EJB3的剑道. 楼主准备用什么appserver? 先学习点经验. 感觉现在在EJB3.0的支持上面Weblogic, Websphere都已经落后了,支持最好的是JBoss,BEA和IBM都忙着SOA |
|
返回顶楼 | |
发表时间:2007-01-27
ahuaxuan 写道 ejb如果用得不好确实可能会产生性能问题,特别是如果大量使用remote和stateful得session bean的时候,这个问题是早有定论的,还有集群和分布不是同一回事,说集群,那想spring这种轻量级框架也是可以集群的,罗德约翰生建议即使使用ejb,也要用slsb,这个我想大家应该没有异议的吧,我们公司现在的做法是既集群又分布,呵呵,大量使用remote session bean,在开发的时候我就已经觉得很慢了,但是他们说要通过集群来把性能提上去,成功与否还不知道,我觉得现在我们拐了个弯,代价是更多的硬件,更长的开发时间,性能未必高到哪里去
EJB用得不好,当然能产生性能问题。 但是,什么技术用的不好,都会产生性能问题,或者任何其他问题。 spring是可以集群,但这不是问题的关键。 |
|
返回顶楼 | |
发表时间:2007-01-27
Lucas Lee 写道 ahuaxuan 写道 ejb如果用得不好确实可能会产生性能问题,特别是如果大量使用remote和stateful得session bean的时候,这个问题是早有定论的,还有集群和分布不是同一回事,说集群,那想spring这种轻量级框架也是可以集群的,罗德约翰生建议即使使用ejb,也要用slsb,这个我想大家应该没有异议的吧,我们公司现在的做法是既集群又分布,呵呵,大量使用remote session bean,在开发的时候我就已经觉得很慢了,但是他们说要通过集群来把性能提上去,成功与否还不知道,我觉得现在我们拐了个弯,代价是更多的硬件,更长的开发时间,性能未必高到哪里去
EJB用得不好,当然能产生性能问题。 但是,什么技术用的不好,都会产生性能问题,或者任何其他问题。 spring是可以集群,但这不是问题的关键。 事实上是用ejb,相对于其他的的技术来说更容易出问题,当然如果你非常精通ejb,那就不用说了,但是这样的人毕竟很少,所以如果公司里没有对ejb非常熟悉的人还是不要贸然用它,另外ejb2.0的entity bean是公认的败笔,很多公司使用ejb框架的都是slsb+jdbc来用的,很少有人会去用entity bean吧(ejb3.0除外,即使是ejb3.0,选择jpa的人估计要比选择entity bean的人要多,这是勿庸置疑的),总之使用ejb对人员的要求比较高一点,那么风险相对来说会大。虽然说 引用 什么技术用的不好,都会产生性能问题 ,但是ejb确实是比其他技术更容易用得不好,也就是说ejb更容易产生性能问题
|
|
返回顶楼 | |
发表时间:2007-01-28
popop 写道 正在考虑采用EJB3来构建一个大型的在线支付交易系统。特点是无前端界面,只提供服务接口;每日交易量巨大,对TPS(每秒处理的交易数)的指标要求较高。由此带来的技术性要求为:
1. 对大并发的访问压力有足够承受能力; 2. 响应时间必须足够短(3秒以内); 3. 具有企业级的事务完整要求; 4. 企业级的安全性; 5. 方便实时监控系统运行状态参数,如访问量曲线等; 6. 与银行系统的可靠连接。 采用EJB3,主要是希望利用容器的强大和成熟性,避免重复编写企业级的环境类代码,而将主要精力放在业务实现上。EJB3为本项目至少可以带来对象池的管理、声明式事务支持、透明的集群机制、及其相当程度的安全性。EJB分布式的优点暂时还用不上,准备仅仅使用本地接口的方式,从接入门户系统直接调用。EJB持久层用EJB3.0的JPA。接入系统采用的技术还未深入思考,大致有两种思路:Servlet容器或者自己编写基于javax.concurrent的线程池。 当然,用EJB最担心的还是性能问题,不知道Spring这样的轻量级框架对于这个项目是否就够用了。希望可以通过与大家的讨论,做一次成功的选型。 既然你写道对TPS的指标要求高,我猜业务是以对数据库的读写为主,而没有复杂的业务逻辑,(复杂的逻辑比如说金融数据分析,计算量较大的),这样的话的关键在于数据库。要是EJB 3的JPA搞不好性能还不如JDBC。 |
|
返回顶楼 | |
发表时间:2007-01-28
引用 既然你写道对TPS的指标要求高,我猜业务是以对数据库的读写为主,而没有复杂的业务逻辑,(复杂的逻辑比如说金融数据分析,计算量较大的),这样的话的关键在于数据库。要是EJB 3的JPA搞不好性能还不如JDBC。
大型项目不能只考虑性能,关键是ejb提供的分布式事务管理,这个大型项目所必须的,性能上的一点点差距可以用通过硬件集群来解决,但是裸露的jdbc会绑定软件结构和数据库结构。 |
|
返回顶楼 | |
发表时间:2007-01-29
rtdb 写道 >每日交易量巨大
到底有多大? 每天最大量是多少? 每秒最大量是多少? 设计容量为每秒1500个交易,相对集中在日间。 |
|
返回顶楼 | |
发表时间:2007-01-29
daquan198163 写道 EJB3刚出来,哪有成熟性可言 建议楼主把《without ejb》仔细看一遍,尤其是关于对象池、集群和持久化的讨论 without ejb我看过。其中好像没有讲到对象池的处理,是否可以认为Apache commons-pooling够用了? |
|
返回顶楼 | |
发表时间:2007-01-29
Lucas Lee 写道 为什么怀疑EJB存在性能问题呢?
那你觉得Entity Bean,EJB集群是用来干什么的? 如果你觉得在低端配置的机器,或者单台机器上的性能不如轻量级框架,那还可以理解。 EJB的性能问题,在我看来存在两点:一是每次调用,都会穿过重量级容器,引起性能不可忽视的损失;二是设计得不好的话,远程调用带来的网络和序列化开销。这个应用对响应速度的要求很高,提高硬件配置倒是没问题,甲方有钱;但我的感觉是在这个项目上相比软件架构,硬件并不起决定性作用。Entity Bean不在视线范围内,只打算用JPA。 |
|
返回顶楼 | |
发表时间:2007-01-29
jamesby 写道 有思想的芦苇 写道 zuly 写道 ejb3无疑是大型应用的首选!
我也有这样的感觉,EJB3不是为中小型应用准备的东西.有空一定要好好学学,领会EJB3的剑道. 楼主准备用什么appserver? 先学习点经验. App Server用IBM WebSphere。 |
|
返回顶楼 | |