Я нахожусь в процессе разработки нового приложения, которое состоит из центральной базы данных SQL-Azure и множества (потенциально +2000) удаленных клиентов [киосков].Мне нужно синхронизировать простые (10 таблиц) локальные базы данных SQL CE с базой данных Azure и предусмотреть, что синхронизация должна выполняться не реже одного раза в день - может не быть большого количества транзакций, которые необходимо применить ккиоски в каждой синхронизации, то есть пара вставок, пара обновлений (довольно часто никаких изменений не требуется);в настоящее время я также только предполагаю, что это будут главные> клиентские обновления, не двунаправленные.Я рассмотрел синхронизацию клиент-клиент, чтобы помочь с масштабируемостью на сервере, но, к сожалению, мой клиент указал, что это может быть невозможно, поскольку киоски имеют только соединения 3G и не участвуют в локальной сети.
Для этого ястремлюсь использовать MS Sync Framework, который действительно хорошо работает, однако у меня есть опасения по поводу потенциальной конкуренции, а также по поводу производительности, когда многие клиенты могут одновременно подключаться к центральной базе данных Azure примерно в одно и то же время.Я вижу два возможных решения этого:
1) Иметь рабочую очередь планирования на стороне сервера, которая вызывает службу WCF на клиенте, которая инициирует синхронизацию с клиента.Это немного сложнее для меня и добавляет дополнительную сложность к решению.
2) Настройте синхронизацию каждого клиента или пакетов клиентов в разное время дня - это работоспособно, но может стать администратором.бремя.
... или, я слишком задумался над проблемой / проблема не существует и масштаб транзакций поддается управлению.
Спасибо