在我的发布方案中,我们有多个部署者将内容推送到文件系统和数据库(代理)。页面和二进制文件放在文件系统上,Broker中的其他所有内容。我们有一个部署人员将内容放入数据库。这是推荐的最佳做法吗?
如果所有部署者的存储配置也将内容放入数据库,Tridion如何处理?这会导致重复的条目,锁定失败等吗?
我担心在撰写本文时,我无法访问某个环境来测试它是如何工作的。
答案 0 :(得分:11)
SDL最佳实践是在部署者和出版物之间建立一对一的关系;这意味着只要两个部署者不发布相同的内容(来自同一出版物),那么他们就不会发生冲突,如果是文件系统,则在部署的网站之间存在分离,例如www / pub1& WWW / PUB2。
您对场景的解释需要一些其他信息才能完成,但听起来很可能是有多个代理数据库(尽管托管在单个数据库服务器上)。在Web服务器上处理多个文件系统时,这是最常见的设置,与单个数据库服务器相结合。
我个人不喜欢这种设置,因为我认为在共享位置托管文件系统内容会更好。分享单个DB。或者更好的是仍然将所有内容部署到数据库并使用类似DD4T / CWA的东西。
答案 1 :(得分:6)
我已经看到(甚至根据客户的限制建议)类似的配置,其中您将多个部署者配置为给定目标的目标。
只有一个部署者可以为同一个事务写入数据库,否则会出现并发问题。因此,一个部署者写入数据库,而所有其他部署者写入文件系统。
所有经纪人/网络应用程序都配置为从数据库读取。
这解决了部署到多个服务器和/或数据中心的问题,其中使用共享文件系统(首选方法)是不可行的 - 无论是出于成本还是出于其他原因)。
简而言之 - 不是最佳做法,但众所周知。
答案 2 :(得分:1)
Julian和Nuno的方法涵盖了大多数常见场景。实际上,单个数据库是单点故障,但在许多安装中,您需要在同一个数据库服务器上运行多个模式,因此即使您有多个“Broker DB”,仍然只有一个故障点。
另一个需要考虑的选择是完全独立的交付节点。这甚至可能意味着在演示文稿框上运行数据库服务器。这些天它都是虚拟的,所以你可以运行单独的小型数据库服务器。 (许可费用将是一个重要的约束条件)
每个交付服务器都有自己的数据库和文件系统。根据您的需要,您可能不希望设置多个目标/部署者,因此您可以部署到一个目标/部署者,并使用文件系统复制和数据库日志传送将内容镜像到其余部分。
当然,您可以配置两个部署系统(或三个)以实现冗余,假设您可以管理所有群集等。
好的 - 干净利落 - 我从来没有像这样建造过这样的产品,但我相当确定这种设计的元素随着虚拟化的增加而变得越来越普遍,并且支持它的许可模式也是如此。 (也许我们必须等待Tridion支持开源数据库!)