Одна база данных Content Delivery для нескольких развертывателей (Broker DB) - PullRequest
7 голосов
/ 27 февраля 2012

В моем сценарии публикации у нас есть несколько развертывателей, отправляющих контент как в файловую систему, так и в базу данных (посредник).Страницы и двоичные файлы помещаются в файловую систему, а все остальное в брокере.У нас есть один из разработчиков, который помещает контент в базу данных.Является ли это рекомендуемой рекомендацией?

Если конфигурации хранилищ во всех средствах развертывания также помещают содержимое в базу данных, как Tridion справляется с этим?Может ли это привести к дублированию записей, сбоям блокировки и т. Д.?

Боюсь, на момент написания статьи у меня нет доступа к среде, чтобы проверить, как это будет работать.

Ответы [ 3 ]

11 голосов
/ 27 февраля 2012

В соответствии с рекомендациями SDL, между развертывателем и публикацией должно быть взаимно-однозначное отношение; это означает, что до тех пор, пока два развертывателя не публикуют один и тот же контент (из одной и той же публикации), они не будут сталкиваться, если в файловой системе существует разделение между развернутыми сайтами, например. www / pub1 и www / pub2.

Ваше объяснение вашего сценария нуждается в дополнительной информации, чтобы завершить его, но, скорее всего, существует несколько баз данных брокера (хотя и размещенных на одном сервере базы данных). Это наиболее распространенная настройка при работе с несколькими файловыми системами на веб-серверах в сочетании с одним сервером базы данных.

Мне лично не нравится эта настройка, так как я думаю, что было бы лучше разместить содержимое файловой системы в общем месте и совместно использовать одну БД. Или лучше все же развернуть все в базе данных и использовать что-то вроде DD4T / CWA.

6 голосов
/ 04 марта 2012

Я видел (и даже рекомендовал, исходя из ограничений клиента) аналогичные конфигурации, в которых несколько развертывателей настроены в качестве пунктов назначения для данной цели.

Только один из развертывателей может выполнять запись в базу данных для одной и той же транзакции.иначе у вас будут проблемы с параллелизмом.Таким образом, один развертыватель выполняет запись в базу данных, а все остальные - в файловую систему.

Все брокеры / веб-приложения настроены на чтение из базы данных.

Это решаетпроблема развертывания на нескольких серверах и / или в центрах обработки данных, где использование общей файловой системы (предпочтительный подход) неосуществимо - будь то по цене или по любой другой причине).

Короче - не лучшая практика,но это, как известно, работает.

1 голос
/ 27 марта 2012

Подходы Джулиана и Нуно охватывают большинство распространенных сценариев.Действительно, одна база данных является единственной точкой отказа, но во многих случаях ожидается, что вы будете запускать несколько схем на одном сервере базы данных, поэтому у вас по-прежнему будет одна точка отказа, даже если у вас несколько «БД-брокеров».

Другой альтернативой для рассмотрения является полностью независимые узлы доставки.Это может даже означать запуск сервера базы данных в вашей коробке представления.В наши дни все это виртуально, так что вы можете запускать отдельные небольшие серверы баз данных.(Затраты на лицензирование были бы важным ограничением)

Каждый сервер доставки имеет свою собственную базу данных и файловую систему.В зависимости от того, сколько вы хотите, вы, возможно, не захотите устанавливать несколько адресатов / развертывателей, поэтому вы развертываете на одном и используете репликацию файловой системы и доставку журналов базы данных, чтобы отразить содержимое до остальных.

КонечноВы можете настроить две системы развертывания (или три) для обеспечения избыточности, предполагая, что вы можете управлять всей кластеризацией и т. д.

ОК - чтобы быть чистым - я никогда не создавал такую ​​систему, но я уверен, чтоэлементы этого вида дизайна станут более распространенными по мере роста виртуализации и моделей лицензирования, которые ее поддерживают.(Возможно, нам придется подождать, пока Tridion поддержит базу данных с открытым исходным кодом!)

...