方正翔宇cms网站内容管理系统(基于动态可缓存内容发布系统的考虑和实现感兴趣)

优采云 发布时间: 2021-09-21 17:17

  方正翔宇cms网站内容管理系统(基于动态可缓存内容发布系统的考虑和实现感兴趣)

  摘要:内容管理系统(cms)在大型商业网站和门户网站中发挥着重要作用。它是有效组织和快速发布内容的一个非常重要的基础平台。目前,主流内容发布系统使用静态页面进行内容发布。在我们的实际使用过程中,我们深切地感受到静态内容发布有很多缺点。本文讨论了全搜索目前使用的动态可缓存内容发布系统的考虑和实现

  一、什么是内容管理系统

  内容发布系统,也称为cms,用于组织、管理和发布企业业务数据。这里的内容不仅指文字内容,还包括图片、声音、视频、flash等富媒体资源。cms的应用大大提高了现场的施工效率,降低了维护成本。目前市场上有多种cms开源内容管理系统,主要包括:

  PHP:

  国内的PHPcms, Verycms, DeDecms, Empirecms, HBcms

  国外:曼波,乔姆拉!,XOOPS,Drupal

  请参阅更多:

  爪哇岛

  ASP主要调查信息的使用等ASPcms如果您感兴趣,可以查看这篇文章文章

  业务cms主要包括:方正祥宇cms、北方网络cms和trswas。方正祥宇cms广泛应用于媒体行业,TRS广泛应用于政府部门,北方网络cms也用于一些媒体网站

  从目前的总体情况来看,开源cms与商业cms还有很大差距,商业cms在工作流、权限控制、内容编辑和分发、系统性能、扩展性和可维护性等方面已经非常成熟和完善;与开源的k4相比,在这些方面有很大的差距。就我个人而言,我认为国外的cms不符合中国人的使用习惯和国情,所以对它们的研究很少,我也不知道它们在中国的应用。至于cms在中国,没有*敏*感*词*的应用案例(如果有请告诉我),我已经透露了几个已知的商业cms内容发布系统的应用状态和关键性能指标。最大数据量为数千万,最大终端用户数为500,发布时间为1-2秒,每天更新10000-20000个内容,相关内容自动更新。简而言之,开源cms还有很长的路要走

  二、什么是可动态缓存的内容管理系统

  动态可缓存内容管理系统是指对前台页面进行动态解析和执行的管理系统,动态解析的页面可以由客户端和代理服务器进行缓存,以达到与生成静态页面相同的执行性能和效果

  三、为什么要使用可动态缓存的内容管理系统

  第一部分中提供的内容发布系统,包括business classcms基本上通过生成静态页面来发布内容。我们早期的系统也使用静态页面进行内容发布。在我们的实际使用中,生成静态页面的方式给我们带来了很多麻烦,主要包括以下问题:

  1、在设计和开发方面,静态页面用于发布。该系统需要大量额外的设计和开发。以静态页面的形式发布涉及到生成规则、更新规则、发布规则等方面,特别是当系统对内容发布和更新有严格的性能要求时,需要仔细设计和权衡这些规则。使用静态页面进行发布主要考虑系统的执行性能。当然,我同意静态页面的执行性能非常高,但是大多数系统的访问量远远超出预期,并且引入了高度的系统复杂性。这并不是说系统一开始有大量的访问,我也不同意动态执行页面不能承受大量的访问,事实上,我所看到的大多数cms静态页面处理规则都设计得不好。例如,经常发现原创HTML在后台没有被删除,内容仍然可以被访问,或者当内容被更新时,相关的引用内容无法被关联和更新;静态发布并不是那么容易。相反,我认为动态发布更容易开发和维护

  2、在系统维护方面,生成的静态页面会占用大量磁盘空间。我们所有的静态页面加起来应该是100-200克。如此庞大的数据备份和恢复非常麻烦,这实际上给系统的操作和维护增加了很大的难度,但事实上cms有一个显著的特点,即发布的次数越多,修改的次数越少,数据发布的时间越早,访问量越少。应该说,超过99%的100200 g数据在有效期后很少或从未被访问,因此磁盘几乎被浪费

  因此,在实际使用中,我们更倾向于动态内容执行+多缓存的方式。在新系统中,我们这样做。最后完成的系统非常简单,并在squid的帮助下实现了静态页面的执行性能

  四、如何实现可动态缓存的内容管理系统

  

  (可缓存内容管理系统用户访问过程)

  实施过程:

  1.所有前台页面都可以通过重写访问。带有URLEWRITE的HTML,这对搜索引擎收录很方便@

  2.WEB当程序被执行时,expires报头被发送到squid服务器以控制squid服务器的缓存时间。Expires用户设置squid服务器和客户端的缓存时间。例如:

  PHP

  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.configure squid server指向源服务器,configure ignore reload忽略no cache和reload请求以提高squid命中率

  4.将最新和最热的数据缓存到memcached服务器,以减少数据库查询

  到目前为止,整个过程已经完成。早期系统的流量通常较小。此时,可以直接向web服务器提供服务。因为cms托管内容发布速度快,修改量少,最新最热门的内容会在memcached中被点击;当流量增加到一定程度时,可以将squid服务器添加到前端,不仅达到与静态页面相同的效果,而且具有系统的可维护性和灵活性。我们的全搜索主页、母婴频道和娱乐频道都使用这种方法取得了良好的效果

  五、extension

  当squid用作前端时,过期时间的设置变得非常重要。如果设置得太长,用户很容易看到过期的内容。如果设置得太短,命中率就会降低,前端缓存的优势无法有效发挥。过期时间应该设置多久?通常,主页的更新通道很高,内容页的更新频率很低,因此主页的过期时间应该设置得更短,内容页可以设置得更长

  新浪

  新浪主页60秒后过期,内容页120秒后过期

  搜狐

  搜狐主页70秒后到期,内容页120秒后到期

  163

  163第一页在80秒内过期,内容页在120秒内过期

  经过测试,在成都全搜索系统中,主页设置为60秒后过期,内容页设置为120秒后过期。经过长时间的操作,此设置未收到编辑和用户的任何不良使用反馈。此设置允许每60秒在原创服务器上执行主页;内容页每120秒发送到原创服务器。因为后端使用memcached作为缓存,所以即使是突发流量也可以轻松处理

  学习材料:

  -点击:15次

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线