10个基于java的cms网站内容管理系统(内容管理系统(CMS)内容发布系统的应用情况关键)

优采云 发布时间: 2021-11-30 02:05

  10个基于java的cms网站内容管理系统(内容管理系统(CMS)内容发布系统的应用情况关键)

  摘要:内容管理系统(cms)在各大商业网站和门户网站中扮演着重要的角色,是有效组织内容和快速发布的极其重要的基础平台。目前主流的内容发布系统使用静态页面进行内容发布。在我们的实际使用中,我们深深感受到静态内容发布的弊端很多。本文讨论了 Full Search 当前使用的动态可缓存内容发布系统。考虑并意识到。

  一、什么是内容管理系统?

  内容发布系统又称cms,英文全称是Contentmanagementsystem,用于组织、管理和发布企业业务数据。这里的内容不仅是指文字内容,还包括图片、声音、视频、Flash等丰富的内容。媒体资源,cms的应用大大提高了站点的建设效率,降低了维护成本。目前市面上的cms种类很多,主要的开源内容管理系统包括:

  PHP:

  国产PHPcms、非常cms、DeDecms、Empirecms、HBcms

  国外:Mambo、Joomla!、XOOPS、Drupal

  查看更多:

  爪哇见

  ASP主要研究新闻的使用,对其他ASPcms感兴趣的可以查看这篇文章文章

  商业cms主要有:方正翔宇cms、北方网cms、TRSWAS。其中方正翔宇cms在媒体行业应用广泛,TRS在政府部门应用非常广泛。被一些媒体广泛使用网站。

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

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

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

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

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

  1、在设计和开发中,使用静态页面进行发布。该系统需要大量额外的设计和开发。以静态页面的方式发布,涉及到生成规则、更新规则、发布规则等各个方面的事务,当系统对内容发布和更新有严格的性能要求时,需要对这些规则进行仔细的设计和权衡。使用静态页面进行发布主要是因为系统的执行性能。我当然同意静态页面的执行性能非常高,但是大多数系统都与预期的访问量相差甚远,并且引入了高度的系统复杂性。系统从一开始就有大量的访问量,并且我不同意动态执行页面不能承受大量访问的说法。其实我见过的大部分cms都没有很好的处理静态页面。设计,比如:经常在后台撤销内容,发现原来的html没有删除,内容仍然可以访问或者某条内容的内容更新了,相关引用的内容无法更新;静态发布方式没那么容易,相反我觉得动态发布更容易开发和维护。相关引用内容无法更新;静态发布方式没那么容易,相反我觉得动态发布更容易开发和维护。相关引用内容无法更新;静态发布方式没那么容易,相反我觉得动态发布更容易开发和维护。

  2、 在系统维护中,生成的静态页面会占用大量磁盘空间。我们所有的静态页面加起来应该是100-200G,这么庞大的数据备份和恢复是很麻烦的,无形中给系统的运维增加了很多难度,但其实cms@ > 有一个显着的特点是更多的发布和更少的修改。较早的数据访问频率较低。应该说,超过99%的100G或200G数据在到期后很少或永远不会被访问,因此磁盘几乎白白浪费了。

  因此,在我们的实际使用中,我们更倾向于动态内容执行+多缓存。我们在新系统中执行此操作。最终的系统非常简单,在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中Hit;当访问量增加到一定程度时,可以在前端增加一个squid服务器,达到和静态页面一样的效果,同时还具有系统的可维护性和灵活性。我们的全搜索首页、母婴频道、娱乐频道都用这种方法取得了不错的效果。

  五、扩展

  当使用 Squid 作为前端时,过期时间的设置就变得很重要了。如果设置的太长,用户很容易看到过期的内容。如果设置的太短,会降低命中率,无法有效利用前端缓存。到期时间应该是多久?一般来说,首页的更新频道很高,内容页更新的频率较低,所以首页的过期时间应该设置的短一些,内容页可以设置的长一些。

  新浪

  新浪首页60秒过期,内容页120秒过期

  搜狐

  搜狐首页70秒过期,内容页120秒过期

  163

  163首页80秒过期,内容页120秒过期

  经测试,成都全搜索系统首页设置为60秒过期,内容页设置为120秒过期。经过长时间的运行,该设置没有收到任何编辑和用户对不良使用的反馈。此设置每 60 秒进行一次。首页到原服务器执行;内容页面每 120 秒到原创服务器执行一次。由于后端使用memcached作为缓存,即使是突发流量也能轻松自如地处理。

  学习资料:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线