不知道因为什么原因,当系统的访问量达到了8000IP的时候,tomcat的内存总是会莫名其妙的增加到上限,而且到最后垃圾回收也会非常费力,最后导致系统停止响应,我调试过各种参数,包括垃圾回收策略,并行回收,修改各内存配置的参数,结果都一样,没办法,绝对对这一访问量最大的部分进行全部静态化。
一、静态化要考虑三个方面的事情,
1 对SEO
能够让搜索引擎更方便的进行信息采集和分类,提升其速度和准确性
2 对用户
不能影响版面的展示,不能为了速度影响了美观和可用性
3 对维护
一些内容可以方便的更换,比如菜单调整,连接调整,广告位的调整等
二、最终采用了如下的方案进行
1 使用freemarker进行静态化
2 将菜单,广告位等以后可能变化的地方,使用JS进行操作。 一些地方采用多个连续的JS,方便以后进行整体调整。
3 通过urlrewrite 将访问转到静态化后的页面
4 通过404的错误处理,对尚未静态化的页面进行处理
5 静态化时,考虑到帖子量在百万级别,为了防止一个文件夹下面有太多文件,决定根据帖子编号的末尾2位数字进行文件夹分组,比如12345 则分配到 45这个子文件夹里面,67890 则分配到90这个文件夹里面。这样就将帖子近似均分到100个文件夹,每个文件夹的帖子在1万个,还可以接受。如果以后帖子再多,我就再考虑分成1000个文件夹了。这个设置要为以后的扩容留有余地。
三、具体操作
1 根据现有帖子页面制作ftl的模板,里面要考虑js的脚本位置。
2 制作批量生成的程序,为减轻服务器的压力,以某个数据库备份为蓝本,在本地完成这部分帖子的初始化,生成htm文件,然后将静态化好的目录整个打包上传到服务器。
3 启动404的处理,比较新的帖子如果没有被静态化,则由这个程序进行处理
4 帖子管理程序改造,在帖子保存时自动进行静态化
5 启动urlRewrite 其中比较关键的部分是
RewriteRule ^/view-([0-9]*?)([0-9]{2}).htm /laozizhu/$2/$1$2.htm [PT]
里面将帖子编号的最后2位单独分组出来,作为目录名,如果以后帖子多了,可以用最后三位来分组了。只需要再次生成帖子,然后简单的修改这个规则即可,前台访问不受任何影响。
四、效果:
目前网站访问量已经达到每天7w的独立IP,tomcat占用内存不超过300M,系统线程数一直在最低的线上。
五、总结
静态化,还是针对大访问量的最佳方案,不是伪静态化,而是真正的静态化。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/java2000_net/archive/2009/08/05/4413813.aspxz
分享到:
相关推荐
【HTML静态化】是Web网站架构优化的一种重要技术,它将动态生成的HTML页面转化为静态的HTML文件,以便直接由浏览器加载,无需服务器处理。这种技术对于提高网站性能、优化SEO以及增强安全性都有显著效果。 **一、...
全站静态化意味着不仅首页,还包括论坛内的其他页面,如板块、帖子等,都将被转换为静态形式,从而提高访问速度,减轻服务器负担。 标签 "程序插件-Discuz!插件" 指出这是 Discuz! 的一个第三方扩展,通常由开发...
论坛短消息静态页面是论坛系统的一个组成部分,主要用于展示用户之间的私人通信内容。这种页面通常设计为静态形式,以便快速加载,提升用户体验。在本讨论中,我们将深入探讨论坛短消息静态页面的设计、功能以及其在...
社交静态网站是一种基于Web技术构建的轻量级、快速加载且易于维护的网站类型,尤其适合用于社交媒体相关的项目。它们不依赖服务器端的动态脚本处理,而是将大部分内容在用户端通过HTML、CSS和JavaScript等前端技术...
2. **URL重写**:为了实现静态页面,论坛可能会利用IIS(Internet Information Services)或第三方组件进行URL重写,将动态URL转化为静态化的友好链接,提高搜索引擎优化(SEO)。 3. **模板引擎**:论坛的界面设计...
- **改善SEO效果**:搜索引擎更倾向于收录和优先展示静态页面,有助于提高网站排名。 - **减轻服务器负担**:减少动态请求的数量,降低服务器负载。 ### 三、伪静态实现原理 伪静态技术的核心在于URL重写。URL重写...
1. 论坛帖子页面的伪静态化规则,将形如page_id=xxx.html转换为对应的PHP文件处理: ``` rewrite ^(.*)-htm-(.*)$ $1.php?$2last; ``` 这里,-htm-是标识符,$2会被作为参数传递给PHP文件。 2. 对于简单风格...
3. **社区网站的静态化**:对于社区类网站而言,帖子和文章等主要信息可通过实时静态化处理,一旦有新内容加入则重新生成静态页面。例如Mop大杂烩、网易社区等都采用了这种策略。 4. **缓存策略中的静态化**:对于...
对于社区类网站,帖子和文章的实时静态化也能显著减少数据库访问,如MOP大杂烩和网易社区。此外,对于那些数据库查询频繁但更新不频繁的部分,如论坛的公共设置信息,也可以考虑静态化处理,降低数据库压力。 其次...
社区型网站也会使用静态化策略,例如帖子和文章的实时静态化,减少数据库查询,提高响应速度。 静态化还可以作为缓存策略的一部分,对数据库查询频繁但内容更新少的应用非常有用。例如,论坛的公共设置信息,虽频繁...
社区类网站如论坛也会采用实时静态化技术,减少动态页面生成带来的性能压力。对于数据库查询频繁但内容更新较少的部分,如论坛设置信息,静态化也能有效降低数据库请求。 2. **图片服务器分离**:将图片资源与网页...
特征页面和博客文章仅在第一次生成,在使用页面的缓存 html 版本之后,直到不对源文件进行任何修改。 降价语法没有文档,所以没有什么可阅读的开发中: 编写文档清理代码,并写一些评论添加更多内容示例写其他主题...
- 社区类网站,如论坛的帖子、文章等,可以通过实时或定期静态化的方式提高性能。 #### 二、图片服务器分离 - **背景**:图片通常是网页中最占用带宽和服务器资源的部分。 - **解决方案**: - 将图片文件存储在...
3. **话题/帖子页面**:每个话题或帖子都有自己的页面,包含帖子标题、作者信息、发表时间、内容及回复区。 4. **用户个人中心**:用户可以查看自己的个人信息、发布的历史帖子、收到的消息等。 5. **回复和交互...
对于交互性强的社区网站,如MOP大杂烩,帖子和文章的实时静态化也是常见做法。 其次,**图片服务器分离**是减轻主服务器负担的关键。图片通常占用了大量带宽和服务器资源,将图片存储和分发独立到专门的图片服务器...
1. **HTML静态化**:HTML静态化是提高网站性能的重要手段。静态HTML页面的加载速度快,对服务器资源的需求较低。对于内容频繁更新的网站,可以通过CMS(内容管理系统)自动生成静态页面,减少动态数据库查询。例如,...
10. **优化与性能调优**:ThinkPHP框架支持缓存机制、数据库连接池,以及页面静态化等技术,能够有效提高网站的运行效率和用户体验。 通过上述分析,我们可以看到ThinkPHP在构建学校网站时,能提供强大的支持,无论...
由于是第一个外售程序,故定价格:180元/套;预售阿赛网站系统Ver2008高级版100套,并禁止传播(用的人多了大家就会研究BUG去HACK了,所以严格控制使用数量。),款到就电邮!哈哈——IT'S ADS; 13、网站设有编码...
例如,每当论坛或社区中的帖子或文章有新内容添加时,系统会立即将其转换为静态页面,以此减少对数据库的直接访问。此外,对于那些更新较少但访问量大的数据(如论坛公共设置),同样可以采用静态化处理,进一步减轻...
- N: 重新从第一条规则开始运行重写过程 - C: 与下一条规则关联 - T=MIME-type: 强制 MIME 类型 - NS: 只用于不是内部子请求 - NC: 不区分大小写 - QSA: 追加请求字符串 - NE: 不在输出转义特殊字符 - **...