网站静态化的第一部分,百万帖子页面
来源:互联网 发布:百度云盘网络异常 编辑:程序博客网 时间:2024/05/16 08:34
不知道因为什么原因,当系统的访问量达到了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.aspx
- 网站静态化的第一部分,百万帖子页面
- 网站静态化的第一部分,百万帖子页面
- 网站页面静态化
- 网站静态页面的生成
- 很多网站的静态页面
- 网站页面静态化方案
- 网站页面静态化方案
- 网站页面静态化方案
- 网站页面静态化方案
- 网站页面静态化方案
- 网站页面静态化方案
- 网站页面静态化方案
- PHP网站页面静态化
- 网站页面静态化处理
- 网站页面静态化方案
- java网站页面静态化
- 网站首页页面静态化
- 第一个静态页面的制作模仿
- 开始
- FOJ QS Network
- 用JAVA和JXTA开发的开放式互动社区平台“iam88”正式宣布开源,并发布1.0版本
- 获得MainFrame指针,View指针,Doc指针
- 【他山之石】GetLastError()返回值的意义
- 网站静态化的第一部分,百万帖子页面
- virtualbox安装redflag
- SOCKET
- Java 实现全局(全操作系统)的键盘鼠标模拟
- .Net 动态调用WebService
- 字符串常量初始化指针和字符数组
- 函数调用方式介绍
- 初入ASM
- 【算法总结】垃圾收集算法