大家好,本人最近想整一套J2EE方面,企业应用系统的基础框架,向有经验的高手请教目前的一些技术,
后台及前台,要求具备高并发,高性能。
比如:类似SSH组合(只是比方,并非说SSH的好与坏)
前台用什么技术,后台用什么技术。
[quote]感谢您的解答,
我的环境是,上千个用户,频繁的录入单据,在录单据的过程中存在很多自动补全的实现,比如:在客户文本框中 输入 a 系统通过AJAX调用后台服务,返回客户名称中带有a 字符的客户列表供客户选择,输入abc则调用三次。
这样会造成大量的AJAX调用。[/quote]
客气了,有两种办法解决,
1是ajax调用的数据可以做缓存,不需要每次取取数据库
2,你可以把ajax取出来的数据在界面用js数组缓存,第一遍取js数组的,假如数组没有,再用ajax去取。
但是自动补全我试过,假如全部缓存到js数组,超过大概400个就会比较卡。假如你自动补全的数据太多了的话,就不要这种方式补全,你可以弹出一个框,单独做个补全的页面。
ssi,或者struts+dbutil 都可以,前台 jquery就够了。
并发处理,你得选用好点的服务器,tomcat大并发还是有点问题的,但是同时在线2000还是木有什么问题。
但是假如2000个并发操作的话,就不光是架构的问题,你的程序的内存管理,数据库连接池的调优是有必要的。ibatis由于是直接操作jdbc,对调优是很有帮助的。
至于ajax的并发,其实也是action的并发(最终都会把压力放到action的操作),涉及到非共享数据的操作,不要盲目同步锁就行了。
SERVLET来处理的话,由于是产生了一个servlet实例,所以得有同步的控制,在高并发的时候确实有被阻塞的风险,你把同步锁加载最需要同步控制的地方,越往里面加越好。
[quote]是不是针对每一个AJAX调用都建一个SERVLET或ACTION会比较好呢? [/quote]
也不是,比如说查询操作的话,没必要考虑,但是在操作数据时会比较好。假如不是大量频繁的操作,一般没太大问题。