Обработка нестабильного интернет-соединения в приложении "сервер-клиент"
Какую технологию я могу использовать для управления нестабильным интернет-соединением в приложении сервер-клиент. Я знаю в основном PHP (+Zend Framework), изучение C# и ASP.NET MVC. я слышал, WCF/MSMQ - это то, что может помочь... но как... есть ли что-то, что может сделать PHP (что мне более знакомо)? но также хорошо знать альтернативу.NET, если ее лучше
фон:
Клиент ***s*** будет подключаться к серверу базы данных для выполнения CRUD. но если подключение к Интернету не удается, это будет невозможно. так как мне это исправить?
решение, используемое сейчас, было иметь localhost db's. в конце дня все клиенты будут загружать на сервер, а утренняя загрузка "объединенной" базы данных с сервера. это не является надежным, так как загрузка / выгрузка может все еще быть неудачной и учитывая большие объемы передаваемых данных, это фактически увеличивает шансы.
ОБНОВЛЕНИЕ: есть ли замена MSMQ/WCF на PHP / Zend Framework / MySQL?
1 ответ
WCF может помочь, потому что он поддерживает различные технологии для надежной передачи сообщений.
Одна вещь, которая может вам помочь, - это сделать так, чтобы клиенты вносили свои изменения данных локально, а затем загружали эти изменения в надежную очередь сообщений. Вы не загрузите все изменения в одной транзакции. Вы можете загружать 10 одновременно, возможно по одному. Поскольку загруженные сообщения обрабатываются на сервере, сервер записывает результаты транзакции в другую очередь, уникальную для каждого клиента. После загрузки (или, может быть, в то же время) клиент проверяет эту очередь, чтобы увидеть, каков был результат каждой загрузки. Если результат был успешным, тогда клиент может удалить свою локальную базу данных. Если в результате произошел сбой, клиент должен попытаться загрузить его снова.
Конечно, вы всегда должны быть осторожны, чтобы ваши попытки восстановления после ошибок не усугубляли ситуацию. Слишком большое количество повторных попыток на плохой ссылке может привести к увеличению трафика, который сам по себе может нуждаться в восстановлении и т. Д.
И, конечно же, окончательное решение - перейти к более надежным ссылкам. Не обязательно быстрее, но просто надежнее.