Вы можете настроить Hazelcast для использования MapLoader - MapStore для сохранения кэшированных данных в любом внутреннем механизме сохранения - реляционные базы данных или базы данных no-sql могут быть хорошим выбором.С вашей первой точки зрения, я не ожидал бы, что что-нибудь, работающее на Arduino, будет обновлять базу данных напрямую, но MKR1000 обеспечит вам подключение, так что вы можете использовать Kafka / MQTT /… - взгляните на https://blog.hazelcast.com/hazelcast-backbone-iot-internet-things/. Если вы выберете этот маршрут, вы настроите базу данных, доступную для всех членов кластера, создадите класс MapLoader / MapStore (см. пример кода , для справки) и сконфигурируйте кластер для чтения / записи.Как только данные находятся в кластере, доступ к ним становится легким, и вы можете использовать инструмент панели мониторинга по своему выбору для представления данных.
(редактировать) - к вашему вопросу о представлении исторических данных на панели инструментов:
В блоге Рахула описывается очень крутая реализация управления данными в режиме реального времени в режиме реального времени в Hazelcast RingBuffer .В этом посте, я думаю, он упомянул сбор данных каждую секунду и буферизацию двух минут.
Кольцевой буфер имеет настроенную емкость, но учтите, что он перезаписывает, при добавлении - это своего родадля систем реального времени;учитывая выбор, потеря старых данных или сбой.
Для обобщенного подхода с использованием инструментов запросов, я думаю, вы бы усилили это.Вдобавок ко всему, я мог видеть использование кольцевого буфера в сочетании с распределенной картой.Вы можете (но не обязательно) заполнять карту, используя перехватчик события карты для заполнения кольцевого буфера.Это должно оставить существующую функциональность нетронутой.Карта, однако, позволит вам настроить хранилище карт / загрузчик карт, чтобы ваши данные сохранялись в резервном хранилище.Карта будет поддерживать запросы, но имейте в виду, что запросы IMDG не считываются в резервное хранилище.
Это даст вам гибкость за счет некоторой сложности.Данные в реальном времени в кольцевом буфере будут всегда доступны, быстро и легко.Данные, возвращаемые при запросе карты, также будут очень быстрыми.Для «исторических» данных вы можете запросить хранилище резервных копий, которое работает медленнее, но, вероятно, будет иметь относительно большую емкость хранилища.Хитрость заключается в том, чтобы знать, когда запрашивать каждый.Самые последние данные - это данные с фиксированной емкостью.Вы должны знать, сколько в кластере - то есть, как далеко уходит ваша история в памяти.Я думаю, что лучше всего настроить срок действия до полезного предела и выделить хранилище, чтобы данные покидали карту по истечении срока действия, а не по факту выселения.Таким образом, вы можете узнать, каково начало истории в памяти.Мониторинг событий выселения скажет вам, что ваш кластер имеет полное представление данных за известное время.