您的位置:首页 > 其它

我们要的究竟是什么:对于CMS系统的思考

2014-02-11 16:01 573 查看
继续阐述问题:

1.静态的Web请求和CMS后台的分离:静态页面的请求本身是一个消耗非常低的应用,一台普通的服务器内存大点应该就可以处理一个可观的请求量。但是实际情况中我们很多的服务器不是这样的。他们访问处理速度慢,并发量低,访问峰值的时候很容易就请求阻塞了。一个非常重要的原因,CMS系统和Web应用在一起的问题!当CMS开始工作,尤其是为了在用户访问开始上升的同时更新内容的时候,CMS自己就吃掉了服务器很多的资源。更不用说整站内容更新的时候带来的巨大计算量了。

    所以,我希望能将CMS从Web服务器分离出来,使用独立的服务器(我们叫CMS服务器)来部署。写入文件的时候,巨大的计算量在CMS服务器中运行,这样就不会影响Web服务器的效率,运算结果出来之后只需要获得Web服务器的写入权限,讲文件写入Web服务器即可。同时,CMS服务器独立了,这时候使用的时候基本上也不用担心它负载的问题,因为即使是宕机了(最坏的打算),也不会影响用户访问网站。因此,我们甚至可以使用一台服务器来部署多套CMS系统来支持多个站点的内容。这样,多一台服务器,却消除了所有的Web服务器的潜在危险,同时也可以集中进行CMS系统的管理。甚至可以考虑多站使用一套系统,这样系统维护不用准备多套代码,但是得每个站是独自设置的,而且必须便于分离,使得如果有站需要分离出去的时候不会造成麻烦。

2.数据库的冗余性:以往的CMS系统有很大的数据冗余,排除无意义的冗余以外,一定程度上,数据冗余和少量计算是只能选择一种的:或者一次计算出一些数据,存储如表,以便以后直接调用,节省计算,当产生变动的时候再计算一次;或者每次都根据大量的数据从新计算后使用。

    当选择了Web和CMS服务器分离的情况下我还是更偏向于后者的,我们可以承受大量的计算来保证我们数据的轻便和清晰。

3.系统设定和数据的存储:数据分为xml和数据库两种方式来存储,所有插件、系统等的设定全部以xml的方式来记录,所有网站内容的东西入库。另外,数据库方面,当网站规模还比较小的时候可以用MySQL,当到一定的规模了之后,还是推荐Oracle的,这样的话,就需要系统兼容两种数据库了。

    兼容数据库有两种方式,和第2点的方案是比较雷同的:(1).语句静态化,根据业务需要和不同的数据库选择,生成一批SQL语句,供调用。当数据库产生变化的时候,再重新生成一次。这样的好处是:生成一次,以后只要调用就好了。(2).原理和Hibernate一样,写伪SQL,每次执行的时候,根据当前的数据库环境和条件生成SQL再执行,当然,好处就是没有复杂的SQL静态化机制,但是每条SQL都会产生很多额外的计算量。
本文出自 “不乖的小宇宙” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐