对于大型商城高并发以及为了解决高并发所采用的集群技术,还有利用集群技术所带来的session共享,集群中二级缓存的维护等问题,本人是菜鸟一只,有兴趣探究这些东西。
不过,鉴于自己水平有限,希望可以得到各位大牛,小牛的指点。在这里,这篇东东主要是为了自己学习所用,就是针对商城性能优化所采取的一些技术做个网上资料的摘录。
页面静态化技术:我们浏览器请求动态资源如jsp,asp,.net等,一般是要经过服务器,将jsp(这里以jsp为例)解析成对应的servlet,servlet当中有生成的html,返回给浏览器解析html页面。如果有100个请求,都是请求这个jsp,每次都要经过访问服务器,然后才拿到html(jsp,第一次请求过来解析成servlet,就不会在第二、第三次。。。第n次请求解析成servlet(如果后台数据有更新除外,有更新必须要再次解析jsp),但是还是需要经过web容器返回对应的页面),有没有更好的方式,例如不用解析jsp,然后web容器直接返回html,或者不用经过web容器的响应返回给html呢?为了缓解web容器的压力,此时就是利用页面静态技术,减少对web容器的访问。
下面这段摘自百度百科,对动态变静态的方法有:
动态变静态
方法一:使用现成的
插件,比如:ISAPI_Rewrite、IIS Rewrite、Apache HTTP服务器的mod_rewrite等,它们都是基于
正则表达式解析器开发的重写引擎。它们的使用方法查看它们自带的帮助即可。
方法二:自己写的代码实现动态网页静态化,方法也有好几种:
1、创建FSO对象,利用此对象将所需的内容动态创建到文件中生成
HTML页面;
3、使用Server.Transfer转换技术,
方法三:使用HttpWebRequest请求
客户端的方式,获取返回资源,生成
静态页面。一般这样只需要获取网页内容即可,其它资源可放置在服务器上,自动加载。(注:此方法缺点明显,需要大量更改匹配URL,建议慎用)
方法四:在asp中有IhttpModule接口。Ihttpmodule可以简单理解为一个可以在执行像.aspx,或者mvc中control/action前,添加我们自定义的操作的东西。
我们只需要编写这么一个HttpModule就可以了,当用户第一次请求asp处理时,我们可以在ihttpmodule中拦截到这个请求,然后获取到这次请求应该返回的html代码,然后我们返回这些html给用户,并保存刚才我们获取到的html到文件内,当用户下次请求时,我们只需要直接返回我们已经保存的html文件即可。
下面,以jsp转化成静态页面为例(目前本人做的是java,关注点在java),详细的资料,请看链接
jsp页面静态化。
还有jsp页面静态化两种实现方法的优缺点