Технологии репликации на уровне приложений - PullRequest
4 голосов
/ 15 сентября 2008

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

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

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

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

Ответы [ 5 ]

2 голосов
/ 16 сентября 2008

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

1 голос
/ 19 июня 2009

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

1 голос
/ 04 ноября 2008

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

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

0 голосов
/ 18 сентября 2008

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

0 голосов
/ 15 сентября 2008

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

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

...