浏览 3323 次
锁定老帖子 主题:基于一定部署环境的高并发实施策略
精华帖 (0) :: 良好帖 (0) :: 新手帖 (11) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-05-11
最后修改:2011-05-11
实话说,本人水平有限,并没有完全的解决方案(实际项目中并没有100%解决过,犹如梦魇)。 查各种资料来看,大部分的讨论都是基于具体问题(如纯Java代码,或只讨论oracle中的锁机制等),还没找到对这一问题的系统见解(ps:如有,请告知)。 以下是本人的一些经验和思路,先列个提纲,权当抛砖引玉。 一、人机界面 之前项目中有个业务操作,实施后发现总是会有不少重复执行操作的情况。原来用户点确认的时候基本上习惯于双击,甚至多次双击,通常在页面还没来得及刷新的时候重复提交。 解决方案:1、使用网页脚本,触发提交事件后首先隐藏按钮 2、使用令牌 二、业务程序层 这个层面上出问题也不少,不注意会造成很多“伪高并发”的问题 解决方案:1、尽量使单一业务程序简单化、减少打印输出(IO相对耗时间) 2、对于不可逆、不可重复的操作,其实业务层是有不少条件可以判断出来的,程序中可以加上检查。 三、数据库访问层 1、 主要指Hibernate等ORM框架 2、JDBC则一般是Sql本身的问题 四、数据库层 1、各种优化,如:数据库内存、共享内存调整等 五、网络层 目标:提高应用的整体网络速度。 解决方案:1、物理设备:服务器使用双网卡、提升带宽等 2、如服务器只有单网卡,或者用户宽带接口只有联通(理论上这种情况服务商会自动转换路由以最佳方式访问服务器,实际个别地区这方面做得不好)。此时则需要在服务器上配置调整。 参考链接:http://www.iteye.com/topic/730241 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-05-30
一点个人体会:
1. 需要先设定一个高并发要达到的目标。 2. 然后以目标为导向,设计系统的整体架构。 3. 对架构中的瓶颈环节进行调优。 不同的并发要求,形成的架构差别很大,架构的优劣是决定性因素,细节上的调优不会带来性能上的飞跃。 |
|
返回顶楼 | |