论坛首页 Java企业应用论坛

基于一定部署环境的高并发实施策略

浏览 3322 次
精华帖 (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
   发表时间:2011-05-30  
一点个人体会:

1. 需要先设定一个高并发要达到的目标。
2. 然后以目标为导向,设计系统的整体架构。
3. 对架构中的瓶颈环节进行调优。

不同的并发要求,形成的架构差别很大,架构的优劣是决定性因素,细节上的调优不会带来性能上的飞跃。

0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics