具有高流量使用的Struts2应用程序(网站)的性能增强

时间:2011-06-24 11:10:47

标签: java performance jsp struts2 high-traffic

我想问一下,为了创建基于STRUTS2的高性能Web应用程序,我应该记住什么。保证该站点具有高流量(即假设每天约500,000个请求)。还会有大量的数据库访问。

请评论,因为我决定使用以下框架(或建议任何更好的替代方案):

  1. Struts2 +弹簧和休眠
  2. Jsp + jquery for views
  3. 用于ajax的DWR调用
  4. 请建议一些性能调整/增强策略。 谢谢!

3 个答案:

答案 0 :(得分:7)

你可以做的事情很多。

首先:

网站中最大的瓶颈始终是数据库连接。您需要确保数据库在单独的集群中运行,并在使用hibernate时尝试在每个数据库会话中执行更多操作。打开/关闭的数据库连接越少,应用程序的速度就越快。

尽可能使用hibernate,因为它具有缓存查询等的逻辑。此外,如果您在用户会话中使用相同的信息,请将其放在会话对象上,这样您就不必多次查询该信息的数据库。

第二

尽可能使用Spring IOC。您应该创建将要进行数据库查询的“服务”类,并将这些类创建为单例,并通过Spring IOC注入构造函数或setter。

第三

使用瓷砖或检票口等工具。它将允许您为JSP创建布局。

第四:

如果页面上显示的数据需要很长时间才能加载/查询,请继续加载包含其他快速数据的页面,然后通过AJAX动态加载慢速数据。它会给用户留下他们正在接收即时结果的印象。

当然,服务器端还有许多其他功能。您可能希望跨多个节点部署应用程序,并使用负载平衡器将流量路由到最不繁忙的节点。您执行的代理,应用服务器,浏览器和数据库的缓存量也会显着影响您的性能。

希望有所帮助!

答案 1 :(得分:2)

答案 2 :(得分:0)

  1. 避免应用设计中出现瓶颈 - 请参阅these tips from Yahoo
  2. 在单独的硬件群集上运行Web服务器,应用程序服务器和数据库服务器。
  3. 如果表现不够好,可以看看是什么减慢了它的速度;如果代码中存在瓶颈,则修复它,否则添加硬件直到它足够快。