Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Content management system Umbraco中子网站的最大数量_Content Management System_Umbraco - Fatal编程技术网

Content management system Umbraco中子网站的最大数量

Content management system Umbraco中子网站的最大数量,content-management-system,umbraco,Content Management System,Umbraco,问题: 一些公司有20个站点,希望在单个CMS实例中管理这些站点。 有许多可能的解决方案,但我正在调查的一个是一个具有20个子网站的Umbraco实例。 我只有Sitecore和Sharepoint的经验(在这些数量上)。 现在我的问题是,;在Umbraco(最新版本)中如何执行此操作? 有人有过这种数量级的实际操作经验吗? 我个人在Umbraco上最多只能在低流量到中等流量的网站上创建3个子网站。在Umbraco界面本身中,网站越大、越复杂,通常执行速度越慢。我这样说纯粹是因为随着场地结

问题:

一些公司有20个站点,希望在单个CMS实例中管理这些站点。
有许多可能的解决方案,但我正在调查的一个是一个具有20个子网站的Umbraco实例。

我只有Sitecore和Sharepoint的经验(在这些数量上)。

现在我的问题是,;在Umbraco(最新版本)中如何执行此操作?

有人有过这种数量级的实际操作经验吗?

我个人在Umbraco上最多只能在低流量到中等流量的网站上创建3个子网站。

在Umbraco界面本身中,网站越大、越复杂,通常执行速度越慢。我这样说纯粹是因为随着场地结构的增长,项目的复杂性可能会增加。情况并非总是如此,但我建立了一个多领域、多站点的站点,每个站点都有多种语言,虽然发布的站点表现良好,但界面往往表现不佳。话虽如此,我还是想回去检查和修改我的代码

对数据库的点击是最严重的违规行为。通常,发布的内容不必进行任何db调用,因为所有publisjed内容都是缓存的。但是,当您创建宏、用户控件、视图、数据类型以查询Umbraco API以检索
文档
内容
内容类型
文档类型
媒体
对象时,您正在访问数据库

如果您在经常调用的代码(例如HttpModule)中执行此操作,那么无论是在发布的站点还是在后台,您的性能都会受到影响。显然,有时这是不可避免的,因此您必须小心,实现一些缓存是非常宝贵的


我还应该指出,目前的Umbraco v6处于测试阶段,并对API进行了大量修改。虽然这不会减轻我们作为开发人员所犯的编码错误,但它会使API比以前更加光滑

我自己也在努力解决这个问题。我在一个Umbraco安装中有大约12个子网站,所以没有您那么多,但其中一个有一个产品部分,其中有数千个产品的单独页面,所以总页面相当多

性能对我来说很好,但这里有几件事需要记住:

  • razor/xslt中的任何查询都必须以最具体到最一般的查询为目标。起初,我有一些查询,得到了所有的“废话”页面。这将列举整个网站寻找这些页面。如果是一个非常小的网站,它会被拥有3000多个产品页面的网站拖慢。因此,您必须小心地瞄准一个特定的节点,然后从那里开始(在我的例子中,向上遍历节点树到“subsiteHome”页面,然后从那里获取类型为“blah”的所有子节点)

  • 以这种方式控制它们的全部目的是使维护更容易,并在站点之间共享资产。如果您要向其中一个子网站添加一些新功能,并且它需要某个包的最新版本,那么您必须准备更新使用该包的所有其他子网站。也就是说,它可以(取决于子网站的规模和复杂性)成为一种平衡行为


  • 最后,我不认为一个安装了20个子网站(每个子网站有100页)的Umbraco与一个安装了2000页的站点的性能会有太大的不同,但在查询/获取内容时必须小心(通过razor/xslt查询),以及维护带来的好处是否真实。

    我目前正在运行一个带有+800个站点和+20000个内容节点的Umbraco安装,而Umbraco一直运行良好,直到大约200个站点和5000个节点,之后我们开始在一些特定的后台任务中体验奇怪的行为。例如,更改多个节点使用的doctype可能会导致一些不必要的前端效果,如缺少内容等(请参阅此处的更多信息)
    但是我们已经修改了Umbraco的一些源代码,以便能够处理更多的节点和站点,并且到目前为止它运行得很顺利。因此,我不知道“限制”是什么(目前)

    我现在通常尽量避免在剃须刀中执行任何非基本查询。我使用MVC模型,将树上的大多数查询委托给服务层。我使用的核心服务是根据请求缓存特定节点查询,例如检索所有根节点、基于当前节点的根节点、按id划分的节点祖先等。这样,具有许多相关功能(如新闻)的页面就不必重新查询同一个节点或分支。很奇怪,为什么要运行这么多子站点?我的项目相当简单,组织有16个分部,希望有一个登录来管理所有分部,但对我来说,+800个站点似乎太多了……我们有许多针对特定行业的“类似”站点,我们在所有站点上使用100多个模块,包括doctype、dll、js、宏、,等等。由于我们处于一个竞争非常激烈的行业,高度关注最终产品的价格,因此将其作为单独的Umbraco安装是不可管理的,也不符合成本效益的。我的估计是,如果再进行一些核心优化,我们可以在当前服务器上处理大约4000个站点,DB和Umbraco的服务器负载不是问题。