Записи уровня при остановке центрального сервера
Доступный радиоканал не гарантирует, что центральное приложение сохраняет показания. Узел может продолжать измерять и отправлять, пока сервер остановлен на обслуживании. Проект локального хранения должен определить, какое подтверждение позволяет удалить исходную запись и как затем догружается история.
Нарисовать путь подтверждения
Разделите регистратор, сетевой шлюз, брокер, обработчик и базу данных. Успех промежуточного этапа не всегда означает сохранение конечным приложением. В документации укажите, какое звено хранит ответственность за запись на каждом участке.
Увеличить схему
MQTT определяет подтверждения протокольной доставки. OASIS — MQTT Version 5.0, OASIS Standard Их нельзя без проверки приравнивать к долговременному сохранению нужной записи в прикладном архиве. Если приложение требует отдельного подтверждения, его формат и смысл проектируют явно.
Определить локальный журнал
У каждой записи должны быть устойчивый ключ, идентификатор точки, время наблюдения, значение и качество. Ключ должен различать контекст перезапуска, если номера могут начинаться заново. Один временной штамп не всегда обеспечивает уникальность.
Рассчитайте вместимость по фактическому размеру записи и согласованному периоду недоступности сервера. Уточните поведение при заполнении и доступный ресурс носителя. Не следует молча удалять самые старые неподтверждённые данные без определённой политики и сообщения о потере.
Согласовать удаление и догрузку
Запись удаляется или отмечается принятой по установленному доказательству, а повтор передачи не создаёт новое измерение на сервере. После восстановления сначала определяют последнюю подтверждённую позицию, затем догружают пропуск. Поступление текущих значений и истории должно сохранять их исходные времена.
Уточните поведение при перезапуске во время записи и подтверждения. Резервирование и восстановление OT рассматриваются в руководстве NIST. NIST SP 800-82 Rev.3 — Guide to Operational Technology Security Для конкретного хранилища проверяют поддерживаемые средства, а не обещают сохранность только по наличию карты памяти.
Испытать несколько границ отказа
На тестовой системе остановите конечное приложение при работающем промежуточном обмене. Затем отдельно проверьте отсутствие брокера и перезапуск локального узла. Для каждого опыта сравните число созданных уникальных записей, принятых и оставшихся неподтверждёнными.
Повторная догрузка должна давать тот же набор уникальных измерений. Проверяйте также границу подтверждения: запись, принятую приложением непосредственно перед его остановкой, передайте повторно и убедитесь, что она не пропущена и не посчитана дважды. Если система не обеспечивает такую модель, ограничения фиксируют и меняют архитектуру по задаче. В акте сохраняют проверенный период, объём и условия отказа, без неограниченной гарантии «данные никогда не теряются».