2008-09-15 6 views
4

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

Я могу терпеть некоторую задержку в репликации и должен разрешать регионам быть автономными, а затем догонять позже.

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

В вашем опыте, что является лучшим образцом для решения этой проблемы, и есть ли хорошие продукты (бесплатно или иначе), которые следует исследовать?

ответ

0

Вы не даете достаточно подробностей, чтобы быть уверенными в ваших потребностях, но я думаю, вы должны проверить репликацию SQL Server Merge. Он позволяет асинхронную репликацию нескольких баз данных с полным разрешением конфликтов. Вам нужно будет назначить глобальный мастер, и все остальные базы данных будут реплицироваться на него, но все экземпляры базы данных будут полностью функциональными (чтение/запись), и вы сможете запланировать репликацию в любой момент времени. Если какой-либо регион выходит в автономный режим, они могут наверстать упущенное позже без проблем - если мастер отправляется в автономный режим, все будут работать независимо, пока репликация не возобновится.

Мне было бы интересно узнать о других решениях этой гибкости (кроме Lotus Notes/Domino, конечно, которые в наши дни не очень модные).

2

Lotus/Domino - ваш ответ. Я работаю с ним десять лет, и это именно то, что вам нужно. Это может быть не модно (восприятие, которое я бы бросил вызов), но его мощный, адаптируемый и очень безопасный. Последняя версия R8 - лучшая.

0

Я думаю, что ваш ответ должен основываться на архитектуре pub/sub. Я предполагаю, что у вас есть надежный обмен сообщениями между вашими центрами обработки данных, чтобы вы могли в конечном итоге полагаться на опубликованные обновления. Если весь ваш доступ к репозиториям данных осуществляется через службу, вы можете добавить уведомление о событии для организации каждой из ваших служб обновления, которая уведомляет обо всех заинтересованных центрах данных события. В идеале основная база данных является единственной, которая отправляет эти обновления. Если основная база данных является единственной, отправляющей обновления, вы можете исключить маршрутизацию уведомлений на узел, который сгенерировал их в первую очередь, тем самым избегая циклов обновления.

1

Вы должны обязательно рассмотреть IBM Lotus Domino. База данных Lotus Notes может реплицироваться между сайтами в предопределенном расписании. Репликация в Notes/Domino, безусловно, очень мощная функция и позволяет полностью реплицировать данные между сайтами. Даже если сервер недоступен, при следующем подключении он просто реплицируется и возвращается в синхронизацию.

Что касается уровня обслуживания SOA, вы можете использовать Domino Designer для написания веб-сервиса. Поскольку Notes/Domino 7.5.x (я считаю), Domino смог обеспечить и использовать веб-службы.

1

AS какой другой совет, я также рекомендую Lotus Notes/Domino. 8.5 - действительно очень мощная разработка приложений. Платформа