我想问一下,为了创建一个基于 STRUTS2 的高性能 Web 应用程序,我应该记住什么。可以保证该站点将具有高流量(即假设每天大约有 500,000 个请求)。还会有大量的数据库访问。
请发表评论,因为我已决定使用以下框架(或建议任何更好的替代方案):
- Struts2 + 弹簧和休眠
- Jsp + jquery 的视图
- 用于 ajax 调用的 DWR
请提出一些性能调整/增强策略。谢谢!
我想问一下,为了创建一个基于 STRUTS2 的高性能 Web 应用程序,我应该记住什么。可以保证该站点将具有高流量(即假设每天大约有 500,000 个请求)。还会有大量的数据库访问。
请发表评论,因为我已决定使用以下框架(或建议任何更好的替代方案):
请提出一些性能调整/增强策略。谢谢!
你可以做几件事。
第一的:
网站最大的瓶颈始终是数据库连接。您需要确保您的数据库在单独的集群中运行,并在使用 hibernate 时尝试在每个数据库会话中执行更多操作。您打开/关闭的数据库连接越少,您的应用程序就越快。
尽可能多地使用休眠,因为它具有缓存查询等的逻辑。此外,如果您在用户会话中使用相同的信息,请将其放在会话对象上,这样您就不必多次查询数据库以获取该信息。
第二:
尽可能使用 Spring IOC。您应该创建将执行数据库查询的“服务”类,并且这些类应该创建为单例并通过 Spring IOC 注入到构造函数或设置器中。
第三:
使用瓷砖或检票口之类的工具。它将允许您为 JSP 创建布局。
第四:
如果页面上显示的数据需要很长时间才能加载/查询,请继续使用其他快速数据加载页面,然后通过 AJAX 动态加载慢速数据。它会给用户一种他们正在立即收到结果的印象。
当然,您还可以在服务器端执行许多其他操作。您可能希望跨多个节点部署应用程序并使用负载平衡器将流量路由到最不繁忙的节点。您所做的代理、应用服务器、浏览器和数据库的缓存量也会显着影响您的性能。
希望有帮助!
由于您使用的是 hibernate,因此您还应该研究 hibernate 性能调整,其中有很多资源,包括这些讨论: