方正翔宇网站内容管理系统(内容管理系统(CMS)内容发布系统的应用情况关键)
优采云 发布时间: 2021-12-29 23:11方正翔宇网站内容管理系统(内容管理系统(CMS)内容发布系统的应用情况关键)
摘要:内容管理系统(CMS)在各大商业网站和门户网站中发挥着重要作用,是有效组织和快速发布内容的极其重要的基础平台。目前主流的内容发布系统使用静态页面进行内容发布。在我们的实际使用中,我们深深感受到静态内容发布的弊端很多。本文讨论了 Full Search 当前使用的动态可缓存内容发布系统。考虑并意识到。
一、什么是内容管理系统?
内容发布系统也称为CMS。英文全称是:Contentmanagementsystem,用于组织、管理和发布企业业务数据。这里的内容不仅是指文字内容,还包括图片、声音、视频、Flash等丰富的媒体资源。CMS的应用大大提高了站点的建设效率,降低了维护成本。目前市场上的CMS种类很多,主要的开源内容管理系统包括:
PHP:
国产PHPCMS、VeryCMS、DeDeCMS、EmpireCMS、HBCMS
国外:Mambo、Joomla!、XOOPS、Drupal
查看更多:
爪哇见
ASP主要考察新闻的使用,对其他ASPCMS感兴趣的可以查看这篇文章
商业CMS主要包括:方正祥宇CMS、北网CMS和TRSWAS。方正翔宇CMS广泛应用于传媒行业,TRS广泛应用于政府部门,北网CMS也应用于一些媒体网站。
就整体情况而言,开源CMS和商业CMS还有很大差距。商用CMS在工作流、访问控制、内容编辑和分发、系统性能、扩展性和可维护性等方面已经非常成熟。和完美; 与开源CMS相比,在这些方面还有很大的差距。由于我个人觉得国外的CMS不符合中国人的使用习惯和国情,对它们的研究较少,在中国的应用也不清楚。就国内CMS而言,目前还没有*敏*感*词*应用。(有的话请告诉我),我揭示了目前已知的商业CMS内容发布系统应用的几个关键性能指标。最大数据量数千万,最大终端用户数为500。发布时间为1-2秒。,每日更新10000-20000内容,相关内容自动更新。总之,开源CMS还有很长的路要走。
二、什么是动态缓存内容管理系统?
动态缓存内容管理系统是指动态解析和执行前端页面的管理系统,动态解析和执行的页面可以被客户端和代理服务器缓存,以达到与静态页面相同的执行性能和效果。
三、为什么要使用可动态缓存的内容管理系统?
第一部分提供的内容发布系统,包括商业CMS,基本上都是通过生成静态页面来发布内容。我们早期的系统还使用静态静态页面进行内容发布。在我们的实际使用过程中,会生成静态页面。页面的方式给我们带来了很多麻烦,主要包括以下几个问题:
1、在设计开发中,静态页面用于发布。该系统需要大量额外的设计和开发。静态页面用于发布,涉及到生成规则、更新规则、发布规则等方面的事务,特别是当系统对内容发布和更新有严格的性能要求时,这些规则需要仔细设计和权衡。使用静态页面进行发布主要是因为系统的执行性能。我当然同意静态页面的执行性能非常高,但是大多数系统都与预期的访问量相差甚远,并且引入了高度的系统复杂性。该系统从一开始就有大量的访问量。我不同意动态执行页面不能承受大量访问的说法。其实我看到的大部分CMS对于静态页面的处理规则都没有很好的设计,比如:我经常在后台撤销内容,发现原来的html没有删除,内容还是可以访问的, 或者某条内容的内容更新,相关引用的内容无法更新;静态发布没那么容易,相反,我觉得动态发布更容易开发和维护。相关引用内容无法更新;静态发布没那么容易,相反,我觉得动态发布更容易开发和维护。相关引用内容无法更新;静态发布没那么容易,相反,我觉得动态发布更容易开发和维护。
2、 在系统维护中,生成的静态页面会占用大量磁盘空间。我们所有的静态页面加起来应该是100-200G,这么庞大的数据备份和恢复是很麻烦的,无形中给系统的运维增加了很多难度,但其实CMS有很大的作用释放更多数据、更少修改、更早数据访问量少的特性,应该说100、200G数据中99%以上的数据在有效期过后很少或永远不会被访问,所以磁盘几乎白白浪费了.
因此,在我们的实际使用中,我们更倾向于动态内容执行+多缓存。我们在新系统中执行此操作。最终的系统非常简单,在squid的帮助下实现了静态页面的执行性能。.
四、如何实现一个动态可缓存的内容管理系统?
(可缓存内容管理系统用户访问流程)
实施过程:
1. 所有前端页面都通过URLrewrite改写成.html进行访问,方便搜索引擎。
2.WEB程序执行时,发送Expires头到Squid服务器,控制Squid服务器的缓存时间。Expires 用户设置Squid 服务器和客户端的缓存时间。喜欢:
PHP
代码
header("Expires:" . gmdate("D, d M Y H:i:s", time() + 120). "GMT"); //缓存120秒
爪哇
Java代码
java.text.SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Calendar cal = Calendar.getInstance(new SimpleTimeZone(0, "GMT"));
format.setCalendar(cal);
java.util.Date expires = format.parse(format.format(new Date(System.currentTimeMillis() + 120 * 1000)));
response.setHeader('Expires: ' + expires);
3. 配置squid服务器指向源站,配置ignore-reloa忽略no-cache和reload请求,提高squid的命中率。
4.将最新最热数据缓存到Memcached服务器,减少数据库查询。
至此,整个过程已经完成。早期系统的访问量一般都比较小。这时可以直接提供WEB服务器对外提供服务。由于CMS管理的内容发布速度快,修改少的特点,最新最热的内容都会在Memcached中命中。; 当访问量增加到一定程度时,可以在前端添加squid服务器,达到和静态页面一样的效果,同时也具备了系统的可维护性和灵活性。我们的全搜索首页、母婴频道、娱乐频道都用这种方法取得了不错的效果。
五、扩展
当使用 Squid 作为前端时,过期时间设置就变得非常重要。如果设置的太长,用户很容易看到过期的内容。如果设置过短,会降低命中率,无法有效利用前端缓存。到期时间应该是多久?通常,首页的更新通道很高,内容页更新的频率较低,所以首页的过期时间应该设置的短一些,内容页可以设置的长一些。
新浪
新浪首页60秒过期,内容页120秒过期
搜狐
搜狐首页70秒过期,内容页120秒过期
163
163首页80秒过期,内容页120秒过期
经测试,成都全搜索系统首页设置为60秒过期,内容页设置为120秒过期。经过长时间的运行,该设置没有收到任何编辑或用户对不良使用的反馈。此设置每 60 秒进行一次。主页到源服务器执行;内容页面每 120 秒到源服务器执行一次。由于后端使用memcached作为缓存,即使是突发流量也可以轻松自如地处理。
学习资料: