方正翔宇网站内容管理系统(内容管理系统(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作为缓存,即使是突发流量也可以轻松自如地处理。

  学习资料:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线