`

网站静态化的第一部分,百万帖子页面

    博客分类:
  • J2EE
阅读更多
不知道因为什么原因,当系统的访问量达到了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
分享到:
评论

相关推荐

    WEB网站架构分析HTML静态化.pdf

    【HTML静态化】是Web网站架构优化的一种重要技术,它将动态生成的HTML页面转化为静态的HTML文件,以便直接由浏览器加载,无需服务器处理。这种技术对于提高网站性能、优化SEO以及增强安全性都有显著效果。 **一、...

    首页静态化(含全站) for discuz7.0.rar

    全站静态化意味着不仅首页,还包括论坛内的其他页面,如板块、帖子等,都将被转换为静态形式,从而提高访问速度,减轻服务器负担。 标签 "程序插件-Discuz!插件" 指出这是 Discuz! 的一个第三方扩展,通常由开发...

    论坛短消息静态页面

    论坛短消息静态页面是论坛系统的一个组成部分,主要用于展示用户之间的私人通信内容。这种页面通常设计为静态形式,以便快速加载,提升用户体验。在本讨论中,我们将深入探讨论坛短消息静态页面的设计、功能以及其在...

    社交静态网站

    社交静态网站是一种基于Web技术构建的轻量级、快速加载且易于维护的网站类型,尤其适合用于社交媒体相关的项目。它们不依赖服务器端的动态脚本处理,而是将大部分内容在用户端通过HTML、CSS和JavaScript等前端技术...

    全静态树形论坛ASP

    2. **URL重写**:为了实现静态页面,论坛可能会利用IIS(Internet Information Services)或第三方组件进行URL重写,将动态URL转化为静态化的友好链接,提高搜索引擎优化(SEO)。 3. **模板引擎**:论坛的界面设计...

    伪静态.txt伪静态.txt

    - **改善SEO效果**:搜索引擎更倾向于收录和优先展示静态页面,有助于提高网站排名。 - **减轻服务器负担**:减少动态请求的数量,降低服务器负载。 ### 三、伪静态实现原理 伪静态技术的核心在于URL重写。URL重写...

    nginx 伪静态化rewrite规则

    1. 论坛帖子页面的伪静态化规则,将形如page_id=xxx.html转换为对应的PHP文件处理: ``` rewrite ^(.*)-htm-(.*)$ $1.php?$2last; ``` 这里,-htm-是标识符,$2会被作为参数传递给PHP文件。 2. 对于简单风格...

    高并发网站系统架构的解决方案

    3. **社区网站的静态化**:对于社区类网站而言,帖子和文章等主要信息可通过实时静态化处理,一旦有新内容加入则重新生成静态页面。例如Mop大杂烩、网易社区等都采用了这种策略。 4. **缓存策略中的静态化**:对于...

    高并发量网站解决方案.docx

    对于社区类网站,帖子和文章的实时静态化也能显著减少数据库访问,如MOP大杂烩和网易社区。此外,对于那些数据库查询频繁但更新不频繁的部分,如论坛的公共设置信息,也可以考虑静态化处理,降低数据库压力。 其次...

    java_web开发_高并发处理_-_-_ITeye技术网站.pdf

    社区型网站也会使用静态化策略,例如帖子和文章的实时静态化,减少数据库查询,提高响应速度。 静态化还可以作为缓存策略的一部分,对数据库查询频繁但内容更新少的应用非常有用。例如,论坛的公共设置信息,虽频繁...

    大型网站性能优化的通用方法(附图)

    社区类网站如论坛也会采用实时静态化技术,减少动态页面生成带来的性能压力。对于数据库查询频繁但内容更新较少的部分,如论坛设置信息,静态化也能有效降低数据库请求。 2. **图片服务器分离**:将图片资源与网页...

    KhtCMS:基于 Markdown 文件的半静态网站博客生成器

    特征页面和博客文章仅在第一次生成,在使用页面的缓存 html 版本之后,直到不对源文件进行任何修改。 降价语法没有文档,所以没有什么可阅读的开发中: 编写文档清理代码,并写一些评论添加更多内容示例写其他主题...

    大型门户网站网站架构……

    - 社区类网站,如论坛的帖子、文章等,可以通过实时或定期静态化的方式提高性能。 #### 二、图片服务器分离 - **背景**:图片通常是网页中最占用带宽和服务器资源的部分。 - **解决方案**: - 将图片文件存储在...

    20047_在线论坛HTML页面模板.zip

    3. **话题/帖子页面**:每个话题或帖子都有自己的页面,包含帖子标题、作者信息、发表时间、内容及回复区。 4. **用户个人中心**:用户可以查看自己的个人信息、发布的历史帖子、收到的消息等。 5. **回复和交互...

    大型高并发高负载网站的系统架构解决之道.pdf

    对于交互性强的社区网站,如MOP大杂烩,帖子和文章的实时静态化也是常见做法。 其次,**图片服务器分离**是减轻主服务器负担的关键。图片通常占用了大量带宽和服务器资源,将图片存储和分发独立到专门的图片服务器...

    大型WEB网站架构深入分析

    1. **HTML静态化**:HTML静态化是提高网站性能的重要手段。静态HTML页面的加载速度快,对服务器资源的需求较低。对于内容频繁更新的网站,可以通过CMS(内容管理系统)自动生成静态页面,减少动态数据库查询。例如,...

    Thinkphp写的一个学校网站

    10. **优化与性能调优**:ThinkPHP框架支持缓存机制、数据库连接池,以及页面静态化等技术,能够有效提高网站的运行效率和用户体验。 通过上述分析,我们可以看到ThinkPHP在构建学校网站时,能提供强大的支持,无论...

    阿赛网站系统 V2008.rar

    由于是第一个外售程序,故定价格:180元/套;预售阿赛网站系统Ver2008高级版100套,并禁止传播(用的人多了大家就会研究BUG去HACK了,所以严格控制使用数量。),款到就电邮!哈哈——IT'S ADS; 13、网站设有编码...

    java高并发处理方法

    例如,每当论坛或社区中的帖子或文章有新内容添加时,系统会立即将其转换为静态页面,以此减少对数据库的直接访问。此外,对于那些更新较少但访问量大的数据(如论坛公共设置),同样可以采用静态化处理,进一步减轻...

    apache中伪静态配置和使用(Apache虚拟主机下Discuz伪静态)

    - N: 重新从第一条规则开始运行重写过程 - C: 与下一条规则关联 - T=MIME-type: 强制 MIME 类型 - NS: 只用于不是内部子请求 - NC: 不区分大小写 - QSA: 追加请求字符串 - NE: 不在输出转义特殊字符 - **...

Global site tag (gtag.js) - Google Analytics