Там в проекте есть основной сервер БД, а другие серверы, установленные в разных местах, поддерживают свои собственные локальные базы данных.Мы должны разрешить каждой системе обновлять свою локальную базу данных до любой версии в основной БД.На всех серверах работает среда Java.
Существует много способов передачи файлов: простая веб-страница загрузки, веб-служба, FTP, сокет. Как вы думаете, что лучше подходит для этой ситуации?
Общая процедура выглядит следующим образом:
1, Клиент отправляет строку версии на Сервер.
2, Сервер генерирует исправление и отправляет обратно.
(Поскольку исправлениеможет быть, слишком большой, его следует разделить на части)
И то, о чем я думаю, находится внутри процедуры 2.
Выбор действительно велик.
1, ясначала нужно посчитать строки, которые нужно извлечь, и рассчитать, сколько частей должно быть разделено.
И тогда я сталкиваюсь с выбором, должен ли я просто отправить обратно количество частей или список ссылок Клиенту, и Клиент использует ссылки для запроса каждой части, если соединение основано на веб-запросе, илиЯ могу сдвинуть детали назад одну за другой, если серверы соединены с сокетом, или я могу сделать следующий шаг:
2, я могу извлекать необходимые записи из базы данных сервера по частям, каждый раз получая ограниченные строки, вернитесь в список Java, немедленно сериализуйте список в файл, чтобы очистить память для следующей части, чтобы я получил папку с файлами.И я сжимаю файлы до одного и отправляю обратно, избегая повторного запроса Клиента.
И сгенерированные файлы исправлений могут быть сохранены для других Клиентов при запросе той же версии.
Я думаю, что все способы будут работать, но как вы думаете, что лучше?Или вы знаете лучший способ?
Давайте поделимся.