Синхронизация удаленных баз данных приложения .NET Mysql - PullRequest
0 голосов
/ 23 февраля 2012

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

Синхронизация должна быть выполнена в короткие промежутки времени. Мы не хотим иметь устаревший сайт.

Мы думали написать код для этой синхронизации. Кажется, трудно добиться надежной синхронизации. База данных клиента будет большой, поэтому отправлять ее в короткие промежутки времени будет практически невозможно.

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

Мы можем запустить несколько экземпляров MySQL, по одному для каждого клиента. Но нам нужно открыть порт для каждого экземпляра, и это звучит небезопасно.

Наконец, мы решили открыть порты и запретить доступ посторонним лицам с помощью брандмауэра.

Как бы вы решили эту проблему? Мы хотели бы выслушать ваше мнение. Спасибо.

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

У меня есть похожая программа, я использую базу данных CQL CE / MS SQL.То, что я делаю, находится на главном сервере, в каждую из таблиц, которые мне нужны для отправки обновлений клиентских баз, я помещаю поле даты обновления.Клиентские базы данных будут иметь таблицу, в которой будет указана дата последнего обновления их базы данных.Поэтому, когда на сервере что-то меняется, дата обновления устанавливается на текущую дату, а затем клиентская программа проверяет дату последнего обновления в веб-службе, чтобы узнать, нужно ли ей какие-либо обновления.

0 голосов
/ 23 февраля 2012

Я немного думал об этом в прошлом.

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

Лучший способ сделать это без открытия портов и т. Д. - использовать длинный опрос или сокеты html 5 для предоставления только запрашиваемых данных. Это обеспечит справедливое решение, если ваши пользователи не ожидают частого просмотра всех данных.

...