Если я встрою базу данных SQLite (или любой большой файл) в службу Service Fabric с отслеживанием состояния или процесс субъекта (или даже в службу приложений Azure), как репликация будет работать в фоновом режиме?
Azure попытается скопировать весь файл, когда он обнаруживает изменения или только сектора диска?
Служба Stateful Service Fabric — репликация файлов, измененных на диске
Ответы (1)
Azure попытается скопировать весь файл при обнаружении изменений или только сектора диска?
Нет, службы с отслеживанием состояния реплицируют только данные, размещенные в надежных коллекциях, вы не должны не ожидать, что измененные файлы будут реплицироваться между узлами, всякий раз, когда создается новый экземпляр вашей службы, исходный файл копируется на новый узел. и у вас не будет доступа к измененным файлам. Не следует сохранять файл на диске узла, для этого следует использовать постоянное хранилище, такое как хранилище BLOB-объектов Azure, или подключить общий файловый ресурс к узлам.
Как репликация работает в фоновом режиме?
Я думаю, вы неправильно поняли концепцию надежных коллекций и служб с отслеживанием состояния. Я рекомендую вам ознакомиться с этой документацией, чтобы получить четкое представление о том, как это работает: https://docs.microsoft.com/en-us
Предложение:
Если вы хотите полагаться на функции управления данными и репликации SF, я бы рекомендовал хранить ваши данные в надежных коллекциях, а не использовать SqlLite. Если соответствует вашим требованиям.
Обновление:
В Build 2018 команда SF объявила о планах поддержки двух версий «надежных» томов, одна из которых будет основана на файлах Azure, как описано здесь, а другой будет основан на надежных коллекциях, которые будут реплицировать измененные файлы, чем позже, еще не выпущен. Если вы можете подождать, я думаю, что эта функция подойдет для ваших нужд.