`
popop
  • 浏览: 8575 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

拟用EJB3实现一个大型在线支付系统

阅读更多
正在考虑采用EJB3来构建一个大型的在线支付交易系统。特点是无前端界面,只提供服务接口;每日交易量巨大,对TPS(每秒处理的交易数)的指标要求较高。由此带来的技术性要求为:
1. 对大并发的访问压力有足够承受能力;
2. 响应时间必须足够短(3秒以内);
3. 具有企业级的事务完整要求;
4. 企业级的安全性;
5. 方便实时监控系统运行状态参数,如访问量曲线等;
6. 与银行系统的可靠连接。
采用EJB3,主要是希望利用容器的强大和成熟性,避免重复编写企业级的环境类代码,而将主要精力放在业务实现上。EJB3为本项目至少可以带来对象池的管理、声明式事务支持、透明的集群机制、及其相当程度的安全性。EJB分布式的优点暂时还用不上,准备仅仅使用本地接口的方式,从接入门户系统直接调用。EJB持久层用EJB3.0的JPA。接入系统采用的技术还未深入思考,大致有两种思路:Servlet容器或者自己编写基于javax.concurrent的线程池。
当然,用EJB最担心的还是性能问题,不知道Spring这样的轻量级框架对于这个项目是否就够用了。希望可以通过与大家的讨论,做一次成功的选型。
分享到:
评论
20 楼 popop 2007-01-29  
bigpanda 写道


既然你写道对TPS的指标要求高,我猜业务是以对数据库的读写为主,而没有复杂的业务逻辑,(复杂的逻辑比如说金融数据分析,计算量较大的),这样的话的关键在于数据库。要是EJB 3的JPA搞不好性能还不如JDBC。


数据库确实是瓶颈之一。大致上我把JPA的性能与Hibernate划等号,比起JDBC肯定是有所不如,所幸还不是数量级的差距。面对ORM和声明式事务的诱惑,是否可以就此折衷一下呢。
19 楼 popop 2007-01-29  
jamesby 写道
有思想的芦苇 写道
zuly 写道
ejb3无疑是大型应用的首选!


我也有这样的感觉,EJB3不是为中小型应用准备的东西.有空一定要好好学学,领会EJB3的剑道.
不知道Weblogic,Websphere 对EJB3的支持怎么样?
楼主准备用什么appserver?
先学习点经验.


App Server用IBM WebSphere。
18 楼 popop 2007-01-29  
Lucas Lee 写道
为什么怀疑EJB存在性能问题呢?
那你觉得Entity Bean,EJB集群是用来干什么的?

如果你觉得在低端配置的机器,或者单台机器上的性能不如轻量级框架,那还可以理解。


EJB的性能问题,在我看来存在两点:一是每次调用,都会穿过重量级容器,引起性能不可忽视的损失;二是设计得不好的话,远程调用带来的网络和序列化开销。这个应用对响应速度的要求很高,提高硬件配置倒是没问题,甲方有钱;但我的感觉是在这个项目上相比软件架构,硬件并不起决定性作用。Entity Bean不在视线范围内,只打算用JPA。
17 楼 popop 2007-01-29  
daquan198163 写道

EJB3刚出来,哪有成熟性可言
建议楼主把《without ejb》仔细看一遍,尤其是关于对象池、集群和持久化的讨论


without ejb我看过。其中好像没有讲到对象池的处理,是否可以认为Apache commons-pooling够用了?
16 楼 popop 2007-01-29  
rtdb 写道
>每日交易量巨大

到底有多大? 每天最大量是多少? 每秒最大量是多少?


设计容量为每秒1500个交易,相对集中在日间。
15 楼 zuly 2007-01-28  
引用
既然你写道对TPS的指标要求高,我猜业务是以对数据库的读写为主,而没有复杂的业务逻辑,(复杂的逻辑比如说金融数据分析,计算量较大的),这样的话的关键在于数据库。要是EJB 3的JPA搞不好性能还不如JDBC。

大型项目不能只考虑性能,关键是ejb提供的分布式事务管理,这个大型项目所必须的,性能上的一点点差距可以用通过硬件集群来解决,但是裸露的jdbc会绑定软件结构和数据库结构。
14 楼 bigpanda 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。
13 楼 ahuaxuan 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更容易产生性能问题
12 楼 LucasLee 2007-01-27  
ahuaxuan 写道
ejb如果用得不好确实可能会产生性能问题,特别是如果大量使用remote和stateful得session bean的时候,这个问题是早有定论的,还有集群和分布不是同一回事,说集群,那想spring这种轻量级框架也是可以集群的,罗德约翰生建议即使使用ejb,也要用slsb,这个我想大家应该没有异议的吧,我们公司现在的做法是既集群又分布,呵呵,大量使用remote session bean,在开发的时候我就已经觉得很慢了,但是他们说要通过集群来把性能提上去,成功与否还不知道,我觉得现在我们拐了个弯,代价是更多的硬件,更长的开发时间,性能未必高到哪里去


EJB用得不好,当然能产生性能问题。
但是,什么技术用的不好,都会产生性能问题,或者任何其他问题。
spring是可以集群,但这不是问题的关键。

11 楼 andyao 2007-01-27  
jamesby 写道
有思想的芦苇 写道
zuly 写道
ejb3无疑是大型应用的首选!


我也有这样的感觉,EJB3不是为中小型应用准备的东西.有空一定要好好学学,领会EJB3的剑道.
不知道Weblogic,Websphere 对EJB3的支持怎么样?
楼主准备用什么appserver?
先学习点经验.


感觉现在在EJB3.0的支持上面Weblogic, Websphere都已经落后了,支持最好的是JBoss,BEA和IBM都忙着SOA
10 楼 jamesby 2007-01-27  
有思想的芦苇 写道
zuly 写道
ejb3无疑是大型应用的首选!


我也有这样的感觉,EJB3不是为中小型应用准备的东西.有空一定要好好学学,领会EJB3的剑道.
不知道Weblogic,Websphere 对EJB3的支持怎么样?
楼主准备用什么appserver?
先学习点经验.
9 楼 有思想的芦苇 2007-01-27  
zuly 写道
ejb3无疑是大型应用的首选!


我也有这样的感觉,EJB3不是为中小型应用准备的东西.有空一定要好好学学,领会EJB3的剑道.
8 楼 ahuaxuan 2007-01-27  
ejb如果用得不好确实可能会产生性能问题,特别是如果大量使用remote和stateful得session bean的时候,这个问题是早有定论的,还有集群和分布不是同一回事,说集群,那想spring这种轻量级框架也是可以集群的,罗德约翰生建议即使使用ejb,也要用slsb,这个我想大家应该没有异议的吧,我们公司现在的做法是既集群又分布,呵呵,大量使用remote session bean,在开发的时候我就已经觉得很慢了,但是他们说要通过集群来把性能提上去,成功与否还不知道,我觉得现在我们拐了个弯,代价是更多的硬件,更长的开发时间,性能未必高到哪里去
7 楼 zuly 2007-01-26  
ejb3无疑是大型应用的首选!

如果楼主认为项目的会有大量的业务逻辑,无疑不能选spring,使用spring的话会将事务限制在spring的API里,那样J2ee变成了一张废纸!
6 楼 LucasLee 2007-01-26  
为什么怀疑EJB存在性能问题呢?
那你觉得Entity Bean,EJB集群是用来干什么的?

如果你觉得在低端配置的机器,或者单台机器上的性能不如轻量级框架,那还可以理解。
5 楼 ahuaxuan 2007-01-26  
引用
EJB分布式的优点暂时还用不上

用了分布式就别说自己要求有多高多高的性能了,关于如何正确使用ejb,我想without ejb中并没有写,但是在他的前面一本书里写了,大意就是不要用有状态的,和远程的session bean, 也就是说用slsb是没有问题的,可惜我们公司现在就是背道而驰啊。如果楼主用ejb3.0的话,起码要有那种对ejb2.0或2.1比较有经验的人,如果没有的话不要轻易冒险
4 楼 jamesby 2007-01-26  
这东西应该是对DB的要求高吧!
3 楼 Allen 2007-01-26  
<div>
<div align='center'>
<table cellspacing='1' border='1' align='center' summary='' style='width: 682px; height: 124px;' cellpadding='1' width='682'>
    <caption>个人觉得的Spring与EJB3的几个对比</caption>
    <tbody>
        <tr>
            <td> </td>
            <td>
            <p align='center'>Spring</p>
            </td>
            <td>
            <p align='center'>EJB3</p>
            </td>
        </tr>
        <tr>
            <td>
            <p align='center'>易见成本</p>
            </td>
            <td>
            <p align='center'>开源的那么成本自然就很低咯,后期出现的变化有可能会造成不可控的开销(虽然这不大会出现)。</p>
            </td>
            <td>
            <p align='center'>一般来说厂商都会给你开个价的吧,成本好预期、可控制。而且基于业界标准的话将来升级也比较容易。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p align='center'>可配置性</p>
            </td>
            <td>
            <p align='center'>比较灵活,一个事情有不同的实现方式。但是性能方面就要靠自己来调配了,能力和经验决定了运行效果。</p>
            </td>
            <td>
            <p align='center'>厂商替您考虑了很多,常见的事情基本都已经有了不错的实现,而且性能应该都挺不错的。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p align='center'>结合特性</p>
            </td>
            <td>
            <p align='center'>Spring对EJB来说是开放的,你可以将部分EJB3的特性方便地融入进来(如果你觉得有必要的话)。</p>
            </td>
            <td>
            <p align='center'>大部分事情都要在自己的框框里面来搞,想加点什么佐料进来也许会比较困难一些。</p>
            </td>
        </tr>
    </tbody>
</table>
</div>
 </div>
<div>以上观点并不成熟,加上跟人才疏学浅,如有谬误还望指出。</div>
2 楼 daquan198163 2007-01-26  
popop 写道
正在考虑采用EJB3来构建一个大型的在线支付交易系统。特点是无前端界面,只提供服务接口;每日交易量巨大,对TPS(每秒处理的交易数)的指标要求较高。由此带来的技术性要求为:
1. 对大并发的访问压力有足够承受能力;
2. 响应时间必须足够短(3秒以内);
3. 具有企业级的事务完整要求;
4. 企业级的安全性;
5. 方便实时监控系统运行状态参数,如访问量曲线等;
6. 与银行系统的可靠连接。
采用EJB3,主要是希望利用容器的强大和成熟性,避免重复编写企业级的环境类代码,而将主要精力放在业务实现上。EJB3为本项目至少可以带来对象池的管理、声明式事务支持、透明的集群机制、及其相当程度的安全性。EJB分布式的优点暂时还用不上,准备仅仅使用本地接口的方式,从接入门户系统直接调用。EJB持久层用EJB3.0的JPA。接入系统采用的技术还未深入思考,大致有两种思路:Servlet容器或者自己编写基于javax.concurrent的线程池。
当然,用EJB最担心的还是性能问题,不知道Spring这样的轻量级框架对于这个项目是否就够用了。希望可以通过与大家的讨论,做一次成功的选型。

EJB3刚出来,哪有成熟性可言
建议楼主把《without ejb》仔细看一遍,尤其是关于对象池、集群和持久化的讨论
1 楼 rtdb 2007-01-26  
>每日交易量巨大

到底有多大? 每天最大量是多少? 每秒最大量是多少?

相关推荐

    英特尔拟用新命名系统 增加对CPU描述.pdf

    【标题】:“英特尔拟用新命名系统 增加对CPU描述.pdf” 【内容解析】: 本文主要讨论了英特尔公司计划对其处理器产品线,包括奔腾和赛扬系列,采用新的命名系统,以更好地向消费者传达处理器的性能信息。新命名...

    Rational Rose和UML可视化建模基础.pdf

    假设我们要开发一个在线购物平台,可以通过以下步骤使用Rational Rose进行UML建模: 1. **需求分析**:首先明确系统需求,使用用例图来描述用户与系统之间的交互。 2. **设计阶段**:绘制类图以确定系统的静态结构...

    基于springboot的保险信息网站的设计与实现.zip

    作为基于web的保险信息网站,分为信息门户系统和后台管理系统两个部分,这两个部分共用mysql 数据库。信息门户系统用来实现和用户的交互,后台管理系统用来实现管理员对后台数据的管理。 1. 信息门户: 1.1、此模块...

    系统分析与建模实验报告.pdf

    数据 库管理系统是另外一个活动者。 实验预习和准备: 了解用例图描述系统基本方式。熟练掌握用例图绘制的基本方法,了解用例、活动者、角色等基本概念的表示。 实验过程与结果: 绘制了系统用例图,并对用例...

    青岛市供热拟用新能源.pdf

    青岛市供热拟用新能源.pdf

    医院智能化系统配置方案.pdf

    背景音响与消防应急广播合用一个系统,消防广播拟用最高优先权。这表明,背景音响系统和消防应急广播系统需要合用一个系统,以确保在紧急情况下的优先权。 5. 院内背景音响(含草坪音响系统)与行政楼多功能会议厅...

    拟用卷明飞并联电路PPT课件.pptx

    3. 并联电路可用于扩大电流表的量程,通过并联一个已知的小电阻,可以测量更大的电流。 课件最后提到了一个思考题,关于三个电阻的并联,其中有一个电阻远大于其他两个,那么在计算等效电阻时,这个大的电阻可以...

    EDA闹钟系统实验报告

    本实验报告详细介绍了基于EDA技术设计的一个闹钟系统,旨在让学生熟练掌握ALTERA Quartus II 6.0软件、GW48-CK EDA实验开发系统的使用,以及VHDL编程语言的基础知识。实验目标是设计一个具有24小时计时、闹钟设置和...

    EDA实验报告数字秒表.doc

    实验的主要内容是设计并调试一个计时 X 为 0.01s~1h 的数字秒表,并使用 GW48 系列或其他 EDA 实验开发系统进行硬件验证。在实验中,需要画出系统的原理框图,说明系统中各主要组成部分的功能,并编写各个 VHDL 源...

    芯片制造商拟用光纤替代铜线制造CPU.pdf

    标题中的“芯片制造商拟用光纤替代铜线制造CPU”揭示了一个重要的发展趋势,即在半导体行业中,研究人员正在探索使用光纤作为数据传输媒介替代传统的铜线,以应对CPU性能提升的挑战。这种转变的主要动机是为了提高...

    Java毕业设计:基于springboot的保险信息网站的设计与实现(源码+文档+录像演示).zip

    作为基于web的保险信息网站,分为信息门户系统和后台管理系统两个部分,这两个部分共用mysql 数据库。信息门户系统用来实现和用户的交互,后台管理系统用来实现管理员对后台数据的管理。 1. 信息门户: 1.1、此模块...

    网上聊天系统工作可行性研究报告材料.doc

    项目旨在构建一个安全、高效、用户友好的在线聊天平台,允许用户通过文字、语音、视频等多种方式进行实时互动,同时考虑集成表情、文件传输等功能,以满足多元化的沟通需求。 1.3 项目开发背景与专门术语 随着...

    毕业设计-基于springboot-保险信息网站(vue)毕业设计与实现(源码+数据库+LW+演示视频).zip

    作为基于web的保险信息网站,分为信息门户系统和后台管理系统两个部分,这两个部分共用mysql 数据库。信息门户系统用来实现和用户的交互,后台管理系统用来实现管理员对后台数据的管理。 1. 信息门户: 1.1、此模块...

    基于YOLOV3的人体口罩佩戴检测.zip

    基于YOLOV3的人体口罩佩戴检测yolo3-keras-breath_mask基于YOLOV3的人体口罩佩戴检测由于2020年新型冠状病毒,针对公共场合检测人员是否佩戴口罩,拟用YOLOV3完成一个人体口罩佩戴检测。效果展示的工欲善其事必先利...

    江西省人民医院整形美容门诊拟用耗材招标公告借鉴.pdf

    江西省人民医院整形美容门诊拟用耗材招标公告借鉴.pdf

    机电一体化系统课程设计.doc

    为了实现半闭环控制,拟用 MCS-51 系列的 8 位单片机 AT89C52 作为控制系统的 CPU。 四、机械传动部件的计算与选型 机械传动部件的计算与选型是为了确定机械传动部件的参数。包括导轨上移动部件的重量估算、铣削力...

    日拟用纳米技术开发新一代半导体基片.pdf

    这种芯片的原型尺寸已经达到了3纳米高,20纳米宽,未来有潜力进一步缩小,同时保持耐用性,即使在十万次重写后仍能保持稳定工作。 【纳米技术在环保领域的应用】 美国赖斯大学的生物与环境纳米技术中心(CBEN)成功...

    EDA实验报告-数字秒表.pdf

    实验内容主要是设计并调试一个计时范围为 0.01s~1h 的数字秒表,并用 GW48 系列或其他 EDA 实验开发系统进行硬件验证。 实验目的: 1. 学习 Quartus Ⅱ 软件的使用方法。 2. 学习 GW48 系列或其他 EDA 实验开发...

    EDA技术实验教案.pdf

    设计并调试好一个 1 位二进制全加器,并用 GW48-ESEDA 实验开发系统进行系统仿真、硬件验证。设计 1 位二进制全加器时要求先用基本门电路设计一个 1 位二进制半加器,再由基本门电路和 1 位二进制半加器构成 1 位二...

    智能PLC控制系统—基于STM32单片机及Android控制.docx

    本项目旨在设计一套通过手机客户端远程控制可编程逻辑控制器(PLC)的系统,通过手机端便可以轻松控制设备,实现了操作信息的远距离无线传输,增加了操作PLC的便捷性。该系统使用云平台作为数据执行和传输的媒介,以...

Global site tag (gtag.js) - Google Analytics