haitao:
用j2ee架构金融平台-1分钟处理1000笔交易
[阅读: 484] 2006-03-21 14:41:14
用j2ee架构金融平台,请各位指点 发表时间: Jan 6, 2006 11:36 PM 回复
在ATM和银行主机之间,通常有个大前置,主要用来做一些预处理工作,传统的金融平台大多采用c来处理,现在想接入网银,想改用j2ee来架构,也为以后的sop做准备,我想问的是在这种实时交易系统里应该用什么的架构。因为ATM是走TCP/IP协议的,而网银是http协议的。如果我web方面采用jsp+struts做页面层spring+hibenate做业务层,而ATM的接入采用application同样接入到到spring的业务层。由于交易量较大,必须1分钟处理1000笔交易(单ATM),这样的架构是否合适?另外,多线程如何去实现?请各位高手指点,特别是板桥大哥!
banq
发表文章: 6003
来 自: 上海
注册时间: 2002-08
Re: 用j2ee架构金融平台,请各位指点 发表时间: Jan 9, 2006 10:16 AM 回复
>必须1分钟处理1000笔交易(单ATM),这样的架构是否合适
关键是你的前置要做哪些工作,是否有复杂的业务逻辑,对于这样实时性比较高的系统,少用框架。
你不知道Spring+hibernate都是实时性很差的系统吗?Yin在本类别中帖子不是说了:Spring会产生大量垃圾,频繁启动垃圾回收机制,你的应有就得暂停,Spring的动态代理Proxy对象是每个请求信号都会产生的,1分钟处理1000笔交易,那么一分钟内至少1000个Proxy对象,还有其他附带对象,你需要多大内存才能不保证你的内存在短时间内能够调度得过来啊。
比较好的策略:分析你的系统在应付如此大访问量下的瓶颈所在。
如果确实需要业务组件,多台机器组成的分布式EJB系统可能更适合你这样系统,因为ATM机肯定有很长的Session存活期,Spring都没有Session管理框架,你保持一个Session一直不断Open,又占用内存,一分钟内如果非常多的ATM客户端接过来,又通过Session打爆你的主机内存。EJB的Stateful对Session可以在规定内存内进行管理。
如果你这个系统没有数据库,只是一个broker,转接者,使用JMS也比多线程强,千万别用多线程,就像就是现在过得再不好,没有出路,也不能回到原始社会一样。