不知道因为什么原因,当系统的访问量达到了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 版本之后,直到不对源文件进行任何修改。 降价语法没有文档,所以没有什么可阅读的开发中: 编写文档清理代码,并写一些评论添加更多内容示例写其他主题...
由于是第一个外售程序,故定价格:180元/套;预售阿赛网站系统Ver2008高级版100套,并禁止传播(用的人多了大家就会研究BUG去HACK了,所以严格控制使用数量。),款到就电邮!哈哈——IT'S ADS; 13、网站设有编码...
帖子和页面是用编写的。 #入门现在有很多手动步骤,计划是使用一点一点地自动化。 在分叉该项目。 将其克隆到本地目录。 创建文件夹data\templates\razor并添加以下模板文件: archive.cshtml index.cshtml ...
系统设置和分类中设置增加头条简介方式第一条简介内容设置 内容及会员管理等修改后可回列表页继续操作 实现图片等文件防盗链(需在IIS中添加映射) 增加显示热门标签函数 添加新闻时可自动从内容截取简介,不再...
新的域名体系支持版块、帖子、分类自定义URL,支持目录绑定,帖子列表页、阅读页、门户页等页面均支持伪静态。 通过版块分类页面打造社区频道 在phpwind9.0中,我们将版块分类页面做成一个独立了一个独立页面。在这...
全书压缩打包成2部分,这是第1部分。 注:本系列图书的第I、II卷再版时均相应改名为《xxx开发实例大全》(基础卷)及(提高卷),但内容基本无变化,需要的童鞋可自由匹配查找。 内容简介 《PHP开发实战1200例》分为...
目录: 第1篇 基础篇 第1章 开发环境 2 1.1 AppServ——PHP集成化安装包 3 实例001 通过AppServ配置PHP开发环境 3 实例002 AppServ应用技巧 6 实例003 第1个PHP程序 7 1.2 XAMPP——PHP集成化安装包 8 实例004 通过...
---第一步:进入后台门户频道栏目,添加频道; ---第二步:开启产品频道,建立频道列表页模板名选择“Creative!_产品列表页”,文章页模板名选择“Creative!_产品内容页”; ---第三步:开启关于我们频道,建立频道...
jekyll-多语言 Jekyll/Octopress 网站的多语言方法 可以详细了解该插件的工作原理。 特征 支持多语言和单语言帖子/页面 支持翻译静态文本 支持转换第三方插件生成... 多语言(即每种语言一个帖子/页面。) 单语言帖子/
1)发起团购:如果想要团购的商品不在团购活动中,或上次的团购活动已经到期,则团购的第一人,可以作为团购发起人,填写团购宣言。发起团购的人如果组团达到一定标准,那么还将获得一定的奖励。 2)参与团购:如果...
这是一款仿腾讯网看图效果而设计的插件; 安装后可以把你论坛的图片帖子用更丰富的图展效果显示出来,大大提高了用户的视觉体验...7. 插件经过各大主流浏览器的兼容测试,并保证BUG的第一时间修正,大家可以放心使用;
动态页面该网站还具有两条 : /code/[slug] -显示相应代码项目的详细内容/images/[slug] -显示相应Slate的内容内容管理建立该网站是因为我的第一个React网站是硬编码的,这使内容管理非常痛苦。 对于此网站,我通过...
36、修复了用户设置界面风格后,第一次访问时界面设置无效问题 37、修复了wap发帖回帖成功后今日发帖数不变的问题以及主题浏览无分页问题 38、修复了浏览帖子时以及查看短消息内容时解析特殊字符$出错的问题 39、...
36、修复了用户设置界面风格后,第一次访问时界面设置无效问题 37、修复了wap发帖回帖成功后今日发帖数不变的问题以及主题浏览无分页问题 38、修复了浏览帖子时以及查看短消息内容时解析特殊字符$出错的问题 39、...
下博客 一个极其简单,快速的静态博客生成器。... 标题来自降价文件的第一行。 确保第一行以#开头。 步骤1:创建以下文件夹结构: . ├── css │ └── styles.css ├── markdown │ └──
第1章 你是编程人员,也是搜索引擎营销人员 1.1 你是谁 1.2 你需要学习什么 1.2.1 SEO和站点体系结构 1.2.2 SEO不能成为马后炮 1.2.3 通信构建抉择 1.2.4 构建细节将会决定成败 1.3 准备软件环境 1.3.1 安装...
这套系统自2006年发布的第一个版来以来,以其简单易用、功能强大、拓展性极灵活而倍受广大用户的青睐,至今已累计数十万的用户群。 拥有CMS业界最全的功能,是适合任何网站的最佳解决方案 功能模型十分齐全,系统拥有...
第一个实现花了我大约 4-5 个小时的工作。 它基于以下库: 引导程序,用于布局部分 Parsedown,一个神奇的 PHP 库,用于解析 Markdown 文件 特征 所有帖子都是用纯 Markdown 编写的,然后按正确的顺序由脚本重新...
社区支持无限级分类,左侧工具栏静态化再多的版面也不会影响速度。 大量的使用高性能缓存使得软件在高并发下对数据库的压力降到最低!支持分布式Cache! 软件经过优秀的用户体验专家和交互设计师指点注重每一个细节...
【新增】UCHome 应用使用情况展示,在会员资料页面和帖子页面,可以随时看到该会员在 UCHome 中的新消息 【新增】外部注册限制,设置是否允许来自 UCenter 其他应用用户激活方式的注册 【增强】论坛交易积分设置,...