- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网站高并发解决方案
篇一:高并发网站架构解决方案
一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系 统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技 术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原来简单的html静态网站所能 比拟的。
大型网站,比如门户网站。在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。但是除了这几个方面,还没法根本解决大型网站面临的高负载和高并发问题。
上面提供的几个解决思路在一定程度上也意味着更大的投入,并且这样的解决思路具备瓶颈,没有很好的扩展性,下面我从低成本、高性能和高扩张性的角度来说说我的一些经验。
1、HTML静态化
其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是 最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS,像我们常访问的各个门户站点 的新闻频道,甚至他们的其他频道,都是通过信息发布系统来管理和实现的,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限 管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。
除了门户和信息发布类型的网站,对于交互性要求很高的社区类型网站来说,尽可能的静态化也是提高性能的必要手段,将社区内的帖子、文章进行实时的静态化,有更新的时候再重新静态化也是大量使用的策略,像Mop的大杂烩就是使用了这样的策略,网易社区等也是如此。
同时,html静态化也是某些缓存策略使用的手段,对于系统中频繁使用数据库查询但是内容更新很小的应用,可以考虑使用html静态化来实现,比如论坛 中论坛的公用设置信息,这些信息目前的主流论坛都可以进行后台管理并且存储再数据库中,这些信息其实大量被前台程序调用,但是更新频率很小,可以考虑将这 部分内容进行后台更新的时候进行静态化,这样避免了大量的数据库访问请求。
一下是一个SSH下的html静态化例子
用Article表来演示下页面静态化,在此做记录,便于今后参考。这里是基于SSH2架构来演示的。
1.演示工程整体结构概览
这里我引入了htdz_lib这么个User Libraliry,包含了SSH2整合所需的jar以及urlrewrite.jar。
同时urlrewrite.xml也已创建于WEB-INF下。
2.Article表预览
我们给Article表增加个HadStatic字段,用以标识此文章是否已静态化。
我们不建议添加一篇文章就直接生成对应的静态页面,如果都没有用户来阅读,服务器就徒增了大量html文件,浪费资源。
所以我们一般采用访问生成策略:
用户访问某文章,判断服务器是否存在此文章对应的静态页,存在则直接重定向到此静态页面,不存在则执行静态化,然后再重定向到生成的静态页。
然而每次通过IO去查找文件是否存在,耗费性能,所以像Article这类表加个HadStatic字段,直接判断字段的值来决定是否静态化显得合理多了。
3.配置web.xml 1. lt;!-- 定义Spring的装载器 --2.
lt;context-param
3.lt;param-namecontextConfigLocationlt;/param-name
4.lt;param-value
5. classpath:conf/spring/applicationContext.xml
6.lt;/param-value
7. lt;/context-param
8. lt;!-- 监听Spring装载器 --
9. lt;listener
10.
11.
12.
13.
14.
15.
16.
17.lt;listener-classorg.springframework.web.context.ContextLoaderListener lt;/listener-class lt;/listener lt;!-- 定义Struts2核心过滤器 -- lt;filter lt;filter-namestruts2lt;/filter-name
18.
19.
20.
21.
22.
23
您可能关注的文档
- 简述事故调查的要求.doc
- 简约线条ppt模板下载.doc
- 简述营销策划具体理解.doc
- 箐优网初中化学.doc
- 简述行政案件结案的条件.doc
- 算工资,excel,表格导入.doc
- 管制刀具的心得体会.doc
- 管理人员行为规范试题.doc
- 管理学论文与公文的区别.doc
- 管理问题解决方案视频.doc
- wipo-2022年技术与创新支持中心和技术转让办公室报告 - 加强地方创新能力以加速知识和技术转让.docx
- 中文大模型基准测评2024年10月报告-2024年度中文大模型阶段性进展评估.docx
- 2024年三季度宏观经济分析报告.docx
- 【深交所】红日药业:2024年一季度报告.docx
- Acc智能制造与卓越运营业务体系设计咨询方案.docx
- 第六代固定通信网(F6G)白皮书V2.0——天地一体化光通信技术.docx
- 提升效益 持盈保泰-摩根大通2024年中国运营资金指数报告-摩根大通.docx
- 新时代低空休闲发展研究-中国旅游协会休闲度假分会.docx
- 标普信评 -保障房怎么搞?--新加坡模式的借鉴与启发 202409.docx
- 标普信评 -一文看懂电力行业信用趋势:风光发电杠杆或持续上升 202409.docx
文档评论(0)