Tridion 多部署者单一内容交付数据库(Broker DB)

Tridion 多部署者单一内容交付数据库(Broker DB),tridion,Tridion,在我的发布场景中,我们有多个部署人员将内容推送到文件系统和数据库(代理)。页面和二进制文件放在文件系统中,其他所有内容都放在代理中。我们有一个部署人员将内容放入数据库。这是推荐的最佳实践吗 如果所有部署人员中的存储配置也将内容放入数据库,Tridion将如何处理此问题?这是否会导致重复条目、锁定失败等 在撰写本文时,我恐怕无法访问环境来测试它的工作原理。SDL的最佳实践是在部署者和出版物之间建立一对一的关系;这意味着,只要两个部署者不发布相同的内容(来自相同的发布),那么它们就不会发生冲突,前提

在我的发布场景中,我们有多个部署人员将内容推送到文件系统和数据库(代理)。页面和二进制文件放在文件系统中,其他所有内容都放在代理中。我们有一个部署人员将内容放入数据库。这是推荐的最佳实践吗

如果所有部署人员中的存储配置也将内容放入数据库,Tridion将如何处理此问题?这是否会导致重复条目、锁定失败等


在撰写本文时,我恐怕无法访问环境来测试它的工作原理。

SDL的最佳实践是在部署者和出版物之间建立一对一的关系;这意味着,只要两个部署者不发布相同的内容(来自相同的发布),那么它们就不会发生冲突,前提是,如果是文件系统,则部署的站点之间存在分离,例如www/pub1和www/pub2

您对场景的解释需要一些附加信息才能完成,但听起来很可能存在多个代理数据库(尽管托管在单个数据库服务器上)。这是处理Web服务器上的多个文件系统以及单个数据库服务器时最常见的设置

我个人不喜欢这种设置,因为我认为最好将文件系统内容托管在共享位置并共享单个数据库。或者最好还是将所有内容部署到数据库中,并使用DD4T/CWA之类的工具。

我见过(甚至根据客户的限制推荐)类似的配置,其中您将多个部署器配置为给定目标的目标

对于同一事务,只有一个部署人员可以写入数据库,否则将出现并发问题。因此,一个部署人员写入数据库,而所有其他部署人员写入文件系统

所有代理/web应用程序都配置为从数据库读取

这解决了部署到多个服务器和/或数据中心的问题,在这些服务器和/或数据中心中,使用共享文件系统(首选方法)是不可行的(无论是出于成本还是任何其他原因)


简言之,这不是一个最佳实践,但众所周知它是有效的。

朱利安和努诺的方法涵盖了大多数常见场景。事实上,单个数据库是一个单点故障,但在许多安装中,您需要在同一个数据库服务器上运行多个模式,因此即使您有多个“代理数据库”,您仍然会有一个单点故障

另一个可供选择的方案是完全独立的交付节点。这甚至可能意味着在演示文稿盒上运行数据库服务器。如今,所有这些都是虚拟的,因此您可以运行单独的小型数据库服务器。(许可证费用将是一个重要的制约因素)

每个传送服务器都有自己的数据库和文件系统。根据需要的目的地/部署者数量,您可能不希望设置多个目的地/部署者,因此可以部署到一个目的地/部署者,并使用文件系统复制和数据库日志传送将内容镜像到其他目的地/部署者

当然,您可以为冗余配置两个(或三个)部署系统,假设您可以管理所有集群等


好的——坦白说——我从未构建过这样的设计,但我相当肯定,随着虚拟化的增加,以及支持虚拟化的许可模式的增加,这种设计的元素将变得越来越普遍。(也许我们必须等待Tridion支持开源数据库!)

在这种情况下,让我们假设它是一个发布,发布到多个部署人员,但它只是发布到代理的发布。这里有什么建议?如果一个部署人员只向代理发布,那么您就有一个SPOF。如果执行数据库部署的部署人员失败,则所有其他部署人员的部署将不完整。如果组织不希望有不同的基础架构来增强其健壮性,那么最好是让所有的DPeloyer都做同样的事情(文件系统和数据库),并为每个部署人员提供单独的代理数据库。